2011-12-31  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/51397
	* semantics.c (finish_static_assert): Use %s instead of %E for
	the error message.

2011-12-27  Fabien Chêne  <fabien@gcc.gnu.org>

	PR c++/23211
	* name-lookup.c (do_class_using_decl): Use dependent_scope_p
	instead of dependent_type_p, to check that a non-dependent
	nested-name-specifier of a class-scope using declaration refers to
	a base, even if the current scope is dependent.
	* parser.c (cp_parser_using_declaration): Set
	USING_DECL_TYPENAME_P to 1 if the DECL is not null. Re-indent a
	'else' close to the prior modification.

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

	PR c++/51507
	* search.c (at_function_scope_p): Also check cfun.
	* pt.c (tsubst_pack_expansion): Check it instead of
	cp_unevaluated_operand.
	(instantiate_template_1): Use push_to_top_level.

	* tree.c (dependent_name): OFFSET_REF and BASELINK
	are not dependent names.

2011-12-21  Jason Merrill  <jason@redhat.com>

	PR c++/51611
	* cp-tree.h (CONVERT_EXPR_VBASE_PATH): New.
	* class.c (build_base_path): Defer vbase conversion in an NSDMI.
	* tree.c (bot_replace): Expand it here.
	* cp-gimplify.c (cp_genericize_r): Make sure deferred conversion
	doesn't leak into GENERIC.

2011-12-21  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/51305
	* semantics.c (massage_constexpr_body): Reorder conditionals, make
	sure a BIND_EXPR embedded in a MUST_NOT_THROW_EXPR is handled.

2011-12-20  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/51621
	* tree.c (diagnose_non_constexpr_vec_init): For value initialization
	pass void_type_node, not void_zero_node, to build_vec_init_elt.

2011-12-20  Dodji Seketeli  <dodji@redhat.com>

	PR debug/49951
	* decl.c (cxx_maybe_build_cleanup): Don't set location of the call
	to the destructor.

2011-12-20  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/51612
	* semantics.c (is_valid_constexpr_fn): In case of constexpr
	constructors also check for virtual base classes.

2011-12-19  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/51328
	* pt.c (convert_template_argument): Early error out and return
	error_mark_node for invalid uses of destructors as types.

2011-12-19  Jason Merrill  <jason@redhat.com>

	PR c++/51530
	* pt.c (unify): Handle NULLPTR_TYPE.

	PR c++/51526
	* semantics.c (build_data_member_initialization): Handle
	delegating constructor.
	(build_constexpr_constructor_member_initializers): Likewise.

	PR c++/51553
	* cp-tree.h (LOOKUP_LIST_INIT_CTOR): Rename from
	LOOKUP_NO_COPY_CTOR_CONVERSION.
	(add_list_candidates): Set it earlier.
	(add_candidates): Don't check explicit on ctors when it's set.
	(add_function_candidate): Check it even when LOOKUP_ONLYCONVERTING
	is set.

	PR c++/51553
	* call.c (add_function_candidate): Allow conversions for the copy
	parm in list-initialization unless the argument is an init-list.

2011-12-19  Jakub Jelinek  <jakub@redhat.com>

	PR c++/51619
	* semantics.c (cxx_eval_vec_init_1): If init is NULL for
	multidimensional array, just set eltinit to NULL_TREE.

	* cp-gimplify.c (gimplify_must_not_throw_expr): Use
	gimple_seq_add_stmt_without_update instead of gimplify_seq_add_stmt.

2011-12-19  Dodji Seketeli  <dodji@redhat.com>

	PR c++/51477
	* search.c (lookup_member): Get out early on invalid base type.

2011-12-19  Jason Merrill  <jason@redhat.com>

	PR c++/51489
	* semantics.c (cxx_eval_outermost_constant_expr): Check for
	conversion from pointer to integer here.
	(cxx_eval_constant_expression) [NOP_EXPR]: Not here.

2011-12-18  Paolo Carlini  <paolo.carlini@oracle.com>

	* semantics.c (finish_compound_literal): Don't call check_narrowing
	if !(complain & tf_warning_or_error).

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

	PR c++/51588
	* parser.c (cp_parser_ptr_operator): Reject pointer to member of enum.

2011-12-17  Richard Henderson  <rth@redhat.com>

	PR bootstrap/51072
	* config-lang.in: Revert last change.

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

	PR c++/51586
	* parser.c (cp_parser_check_class_key): Handle error_mark_node.

	PR c++/51587
	* decl.c (start_enum): Avoid using ENUM_UNDERLYING_TYPE on a
	non-enum.

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

	PR c++/51416
	* init.c (build_value_init_noctor): Check for incomplete type.

2011-12-16  Richard Henderson  <rth@redhat.com>

	PR bootstrap/51072
	* config-lang.in (target_libs): Include target-libitm.

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

	PR c++/51461
	* decl.c (check_static_variable_definition): Check COMPLETE_TYPE_P
	before literal_type_p.

	PR c++/51331
	* class.c (convert_to_base_statically): Just call
	build_simple_base_path.
	(build_simple_base_path): Check field offset.

2011-12-15  Jason Merrill  <jason@redhat.com>

	PR c++/51458
	* decl.c (has_designator_problem): New.
	(reshape_init_r): Check for improper use of
	designated initializers.

2011-12-15  Jakub Jelinek  <jakub@redhat.com>

	PR c++/51463
	* decl.c (grokdeclarator): Set DECL_INITIAL of decl
	to error_mark_node to disallow NSDMI if declspecs->storage_class
	is sc_static.
	* parser.c (cp_parser_late_parse_one_default_arg): Return early
	if default_arg is error_mark_node.

	PR c/51360
	* semantics.c (finish_omp_clauses): For OMP_CLAUSE_NUM_THREADS_EXPR
	and OMP_CLAUSE_SCHEDULE_CHUNK_EXPR call mark_rvalue_use.

2011-12-15  Dodji Seketeli  <dodji@redhat.com>

	PR c++/51473
	* decl.c (check_tag_decl): Error out on auto specifier with no
	declarator.

2011-12-15  Jonathan Wakely  <jwakely.gcc@gmail.com>

	PR libstdc++/51365
	* cp-tree.h (CPTK_IS_FINAL): Add.
	* parser.c (cp_parser_translation_unit): Handle RID_IS_FINAL.
	(cp_parser_primary_expression, cp_parser_trait_expr): Likewise.
	* semantics.c (trait_expr_value, finish_trait_expr): Handle
	CPTK_IS_FINAL.
	* cxx-pretty-print.c (pp_cxx_trait_expression): Likewise.

2011-12-14  Jason Merrill  <jason@redhat.com>

	PR c++/51554
	* semantics.c (cxx_eval_indirect_ref): Fix sanity check.

	PR c++/51248
	* decl.c (copy_type_enum): Also update variants.
	(finish_enum): Allow variants of complete enums.

2011-12-14  Dodji Seketeli  <dodji@redhat.com>

	PR c++/51475
	* call.c (struct conversion)<u.next>: Update comment.
	(next_conversion): New static function.
	(convert_like_real): Use it.

	PR c++/51476
	* pt.c (convert_nontype_argument): Don't call maybe_constant_value
	for PTRMEM_CST nodes.

2011-12-13  Jason Merrill  <jason@redhat.com>

	PR c++/51406
	PR c++/51161
	* typeck.c (build_static_cast_1): Fix cast of lvalue to
	base rvalue reference.

2011-12-13  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/51464
	* semantics.c (begin_lambda_type): Check begin_class_definition return
	value for error_mark_node.
	* parser.c (cp_parser_lambda_expression): Check begin_lambda_type
	return value for error_mark_node.

2011-12-13  Fabien Chêne  <fabien@gcc.gnu.org>

	PR c++/14258
	* cp-tree.h (USING_DECL_TYPENAME_P): New macro.
	* parser.c (cp_parser_nonclass_name): Handle using declarations
	that refer to a dependent type.
	(cp_parser_using_declaration): Set USING_DECL_TYPENAME_P to 1 if
	the using declaration refers to a dependent type.

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

	PR c++/51496
	* parser.c (cp_parser_omp_for_loop): When determining whether
	to use cp_parser_omp_for_incr or cp_parser_expression and when
	calling cp_parser_omp_for_incr, use real_decl instead of decl.

2011-12-12  Torvald Riegel  <triegel@redhat.com>

	* semantics.c (finish_transaction_stmt, build_transaction_expr):
	Accept new noexcept parameter and handle it.
	* cp-tree.h (finish_transaction_stmt, build_transaction_expr): Adapt
	declarations.
	* parser.c (cp_parser_exception_specification_opt): Extract
	noexcept-specification parsing to ...
	(cp_parser_noexcept_specification_opt): ...here.  Allow for parsing
	non-constexpr noexcept arguments.
	(cp_parser_transaction, cp_parser_transaction_expression): Parse
	and handle noexcept-specifications.
	(cp_parser_function_transaction): Adapt to finish_transaction_stmt
	change.
	* pt.c (tsubst_expr): Adapt to new noexcept parameters when
	building transactions.

2011-12-12  Torvald Riegel  <triegel@redhat.com>

	* cp-tree.def (MUST_NOT_THROW_EXPR): Add condition parameter.
	* cp-tree.h (MUST_NOT_THROW_COND): New.
	(build_must_not_throw_expr): Declare.
	* dump.c (cp_dump_tree): Dump MUST_NOT_THROW_EXPR condition.
	* except.c (build_must_not_throw_expr): New.
	(initialize_handler_parm): Use it.
	(begin_eh_spec_block, wrap_cleanups_r): Adapt to condition.
	* pt.c (tsubst_expr): Handle MUST_NOT_THROW_EXPR.

2011-12-12  Richard Guenther  <rguenther@suse.de>

	PR lto/51262
	* tree.c (cp_free_lang_data): No longer clear anonymous names.

2011-12-09  Jason Merrill  <jason@redhat.com>

	PR c++/51151
	* call.c (perform_implicit_conversion_flags): Remove earlier kludge.
	* parser.c (cp_parser_omp_for_loop): Use cp_parser_omp_for_incr
	in templates even if decl isn't type-dependent.

2011-12-09  Dodji Seketeli  <dodji@redhat.com>

	PR c++/51289
	* cp-tree.h (TYPE_TEMPLATE_INFO): Rewrite this accessor macro to
	better support aliased types.
	(TYPE_ALIAS_P): Don't crash on TYPE_NAME nodes that are not
	TYPE_DECL.
	* pt.c (find_parameter_packs_r): Handle types aliases.
	(push_template_decl_real): Check for bare parameter packs in the
	underlying type of an alias template.

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

	PR c++/51318
	* typeck.c (build_x_conditional_expr): Restrict glvalue games to C++11.

	PR c++/51459
	* pt.c (tsubst_expr) [DECL_EXPR]: Handle capture proxies properly.
	* semantics.c (insert_capture_proxy): No longer static.
	* cp-tree.h: Declare it.

2011-12-07  Jakub Jelinek  <jakub@redhat.com>

	PR c++/51401
	* decl.c (grokdeclarator): Error for auto on non-static data members.

	PR c++/51429
	* typeck2.c (cxx_incomplete_type_diagnostic): Don't
	ICE if TREE_OPERAND (value, 1) is overloaded.

	PR c++/51229
	* decl.c (reshape_init_class): Complain if d->cur->index is
	INTEGER_CST.
	* parser.c (cp_parser_initializer_list): If cp_parser_parse_definitely
	fails, clear designator.

	PR c++/51369
	* init.c (build_value_init): Allow array types even when
	processing_template_decl.

2011-12-07  Ed Smith-Rowland <3dw4rd@verizon.net>

	PR c++/51420
	* parser.c (lookup_literal_operator): Check that declaration is an
	overloaded function.

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

	PR c++/51430
	* pt.c (tsubst_decl): Don't call strip_array_domain on
	error_mark_node.

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

	PR c++/51431
	* init.c (build_value_init): Check build_aggr_init_expr return
	value for error_mark_node.

2011-12-06  Dodji Seketeli  <dodji@redhat.com>

	PR c++/51427
	* parser.c (cp_parser_check_class_key): Add note about earlier
	declaration.

2011-12-05  Fabien Chêne  <fabien@gcc.gnu.org>

	PR c++/51319
	* semantics.c (finish_id_expression): Strip using declarations
	early in the function.

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

	PR c++/51399
	* init.c (perform_member_init): Early return if init is error_mark_node.

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

	PR c++/51414
	* semantics.c (finish_underlying_type): Use %qT, not %qE for the
	error message.

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

	* init.c (expand_default_init): Unshare args in ctor delegation.

2011-12-05  Ville Voutilainen  <ville.voutilainen@gmail.com>
	    Pedro Lamarão  <pedro.lamarao@gmail.com>

	Implement C++11 delegating constructors.
	* cp-tree.h (enum cpp0x_warn_str): Add CPP0X_DELEGATING_CTORS.
	* error.c (maybe_warn_cpp0x): Adjust.
	* parser.c (cp_parser_mem_initializer_list): Use it.  Diagnose
	multiple initializers if a delegating initializer is present.
	* call.c (build_special_member_call): Convert an assert into an if.
	* init.c (perform_target_ctor): New.
	(emit_mem_initializers): Use it.
	(expand_member_init, expand_default_init): Adjust.

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

	PR c++/51404
	* typeck2.c (build_functional_cast): Early return error_mark_node
	for invalid uses of 'auto'.
	* parser.c (cp_parser_direct_declarator): When
	cp_parser_constant_expression returns error do not produce further
	diagnostic for the bound.

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

	PR c++/51313
	* call.c (null_ptr_cst_p): STRIP_NOPS in c++11 mode too.

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

	* call.c (build_new_method_call_1): Handle aggregate initialization.
	* tree.c (stabilize_init): Handle CONSTRUCTOR.

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

	PR c++/51326
	* call.c (build_user_type_conversion_1): Early return NULL if
	expr is NULL_TREE.

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

	PR c++/51367
	* pt.c (unify_inconsistency): Use either %qT or %qE depending on
	whether parm is a type or non-type parameter.

2011-11-30  Jason Merrill  <jason@redhat.com>

	PR c++/51009
	* name-lookup.c (push_to_top_level): Set stmts_are_full_exprs_p.
	* decl.c (build_aggr_init_full_exprs): Just assert that it's true.
	(check_initializer): Here too.

2011-11-30  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/51299
	* rtti.c (ifnonnull): Use nullptr_node.
	(build_dynamic_cast_1): Call cp_truthvalue_conversion instead
	of c_common_truthvalue_conversion.

2011-11-24  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/51227
	* pt.c (instantiate_class_template_1): If lambda_function (type)
	is NULL_TREE do not instantiate_decl.

2011-11-24  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/51290
	* class.c (build_base_path): For the null pointer check use
	nullptr_node instead of integer_zero_node.

2011-11-22  Dodji Seketeli  <dodji@redhat.com>

	PR c++/51145
	* decl.c (check_elaborated_type_specifier): Gracefully handle
	error_mark_node.  Accept bound template template parameters.
	Update diagnostics for alias template specializations.  Update
	comment.
	* parser.c (cp_parser_elaborated_type_specifier): Use
	check_elaborated_type_specifier for simple-template-ids as well.

2011-11-22  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/51265
	* semantics.c (finish_decltype_type): Handle PTRMEM_CST.

2011-11-22  Dodji Seketeli  <dodji@redhat.com>

	PR c++/51143
	* parser.c (cp_parser_alias_declaration): Don't allow type
	definition in templates.

2011-11-22  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/51196
	* typeck.c (cp_build_binary_op, [case EQ_EXPR]): For targets having
	TARGET_PTRMEMFUNC_VBIT_LOCATION == ptrmemfunc_vbit_in_delta, do here
	the -Wzero-as-null-pointer-constant warning for pmf == 0.

2011-11-21  Torvald Riegel  <triegel@redhat.com>

	* pt.c (tsubst_copy_and_build): Handle TRANSACTION_EXPR.

2011-11-21  Ed Smith-Rowland  <3dw4rd@verizon.net>

	PR c++/50958
	* parser.c (lookup_literal_operator): New.
	(cp_parser_userdef_char_literal): Use it.
	(cp_parser_userdef_numeric_literal): Use it.
	(cp_parser_userdef_string_literal): Use lookup_name.

2011-11-20  Jason Merrill  <jason@redhat.com>

	* pt.c (tsubst_pack_expansion): Fix SFINAE.

	PR c++/48322
	* cp-tree.h (PACK_EXPANSION_EXTRA_ARGS): New.
	* cp-tree.def (EXPR_PACK_EXPANSION): Add an operand for it.
	* pt.c (tsubst_pack_expansion): Set and use it.
	(iterative_hash_template_arg): Hash it.
	(template_args_equal): Compare it.
	(comp_template_args_with_info): Handle nulls.
	* tree.c (cp_walk_subtrees): Walk it.
	* typeck.c (structural_comptypes): Compare it.
	* ptree.c (cxx_print_type): Print it.

	* pt.c (type_unification_real): Set input_location
	during default arg instantiation.

2011-11-20  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/51230
	* pt.c (unify_inconsistency): Handle non-type parameters better.
	* error.c (dump_expr): Handle TEMPLATE_TEMPLATE_PARM.

2011-11-20  Dodji Seketeli  <dodji@redhat.com>

	PR c++/51194
	* pt.c (lookup_template_class_1): Go out early if the type of the
	template is error_mark_node.

2011-11-19  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/51216
	* semantics.c (potential_constant_expression_1): Handle IF_STMT,
	DO_STMT, FOR_STMT, and WHILE_STMT.

2011-11-18  Fabien Chêne  <fabien@gcc.gnu.org>

	PR c++/51188
	* search.c (lookup_field_1): Handle USING_DECLs for the storted
	case.

2011-11-18  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/51150
	* pt.c (tsubst_copy_and_build): Handle FIX_TRUNC_EXPR.

2011-11-18  Dodji Seketeli  <dodji@redhat.com>

	PR c++/51191
	* pt.c (primary_template_instantiation_p): Don't forget to
	consider alias declarations.

2011-11-17  Jason Merrill  <jason@redhat.com>

	PR c++/51186
	* decl.c (grokdeclarator): Improve C++98 trailing return diagnostic.

	N3203
	* class.c (add_implicitly_declared_members): Update move
	conditions.

	PR c++/51137
	* class.c (build_base_path): Don't do calculation in templates.

2011-11-15  Torvald Riegel  <triegel@redhat.com>

	* parser.c (cp_parser_transaction_expression): Require parentheses
	when parsing transaction expressions.

2011-11-14  Ed Smith-Rowland  <3dw4rd@verizon.net>

	PR c++/51107
	* typeck.c (check_literal_operator_args): Add processing_specialization
	to check for void template fn. Test for exact arity for non-template fn.

2011-11-14  Fabien Chêne  <fabien@gcc.gnu.org>

	PR c++/6936
	PR c++/25994
	PR c++/26256
	PR c++/30195
	* search.c (lookup_field_1): Look through USING_DECL.
	(lookup_field_r): Call lookup_fnfields_slot instead of
	lookup_fnfields_1.
	* semantics.c (finish_member_declaration): Remove the check that
	prevents USING_DECLs from being verified by
	pushdecl_class_level. Call add_method for using declarations that
	designates functions if the using declaration is in a template
	class. Set DECL_IGNORED_P on class-scope using declarations.
	* typeck.c (build_class_member_access_expr): Handle USING_DECLs.
	* class.c (check_field_decls): Keep using declarations.
	(add_method): Remove two diagnostics about conflicting using
	declarations.
	* parser.c (cp_parser_nonclass_name): Handle USING_DECLs.
	* decl.c (start_enum): Call xref_tag whenever possible.
	* cp-tree.h (strip_using_decl): Declare, and reident the previous
	function.
	* name-lookup.c (strip_using_decl): New function.
	(supplement_binding_1): Call strip_using_decl on decl and
	bval. Perform most of the checks with USING_DECLs stripped.  Also
	check that the target decl and the target bval does not refer to
	the same declaration. Allow pushing an enum multiple times in a
	template class. Adjustment to diagnose using redeclarations. Call
	diagnose_name_conflict.
	(push_class_level_binding): Call strip_using_decl on decl and
	bval. Perform most of the checks with USING_DECLs stripped. Return
	true if both decl and bval refer to USING_DECLs and are dependent.
	(diagnose_name_conflict): New function.

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

	PR c++/986
	* call.c (set_up_extended_ref_temp): Warn about references
	bound to non-static reference members.
	* init.c (perform_member_init): Pass in the member.

	PR c++/51060
	* cp-gimplify.c (cp_gimplify_expr): Leave clobbers alone.

2011-11-11  Ed Smith-Rowland  <3dw4rd@verizon.net>

	PR c++/50976
	* typeck.c (check_literal_operator_args): Reorganize test for string
	operators so size_t search depends on finding string first.

2011-11-10  Jason Merrill  <jason@redhat.com>

	PR c++/50372
	* pt.c (convert_nontype_argument_function): Allow decls with
	internal linkage in C++11.
	(convert_nontype_argument): Likewise.

	PR c++/50973
	* decl2.c (mark_used): Defer synthesis of virtual functions.
	* method.c (use_thunk): Make sure the target function has
	DECL_INTERFACE_KNOWN.

	PR c++/51079, DR 495
	* call.c (joust): Check the second conversion sequence
	before checking templates.

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

	PR c++/50837
	* pt.c (tsubst_copy_and_build) [IDENTIFIER_NODE]: In C++11 mode
	pass allow_non_integral_constant_expression_p = true to
	finish_id_expression.

2011-11-09  Jason Merrill  <jason@redhat.com>

	PR c++/50972
	* pt.c (maybe_instantiate_noexcept): Check the return value of
	push_tinst_level.

	PR c++/51046
	* parser.c (cp_parser_range_for): check_for_bare_parameter_packs.

	PR c++/51029
	* class.c (build_base_path): Don't ICE in fold_non_dependent_expr.

	* Make-lang.in (check_g++_parallelize): Add dg-torture.exp.
	(check-c++0x): Obsolete.

	* pt.c (invalid_nontype_parm_type_p): Avoid printing "<type error>".

	* pt.c (convert_nontype_argument): Only integral arguments
	get early folding.

	* parser.c (cp_parser_alias_declaration): Don't do semantic
	processing if parsing failed.

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

	PR c++/51045
	* init.c (build_new_1, build_vec_delete_1, build_delete):
	Use nullptr_node.

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

	PR c++/51047
	* search.c (lookup_member): Change to take also a tsubst_flags_t
	parameter.
	(lookup_field, lookup_fnfields): Adjust calls.
	* typeck.c (lookup_destructor, finish_class_member_access_expr,
	build_ptrmemfunc_access_expr): Likewise.
	* class.c (handle_using_decl, maybe_note_name_used_in_class):
	Likewise.
	* pt.c (resolve_typename_type): Likewise.
	* semantics.c (lambda_function): Likewise.
	* parser.c (cp_parser_perform_range_for_lookup,
	cp_parser_lookup_name): Likewise.
	* friend.c (make_friend_class): Likewise.
	* name-lookup.c (pushdecl_maybe_friend_1, get_class_binding,
	do_class_using_decl, lookup_qualified_name): Likewise.
	* cp-tree.h (lookup_member): Adjust declaration.

2011-11-09  Dodji Seketeli  <dodji@redhat.com>

	PR c++/51043
	* cp-tree.h (TYPE_ALIAS_P, TYPE_TEMPLATE_INFO): Don't crash on
	NULL TYPE_NAME.

	PR c++/51027
	* parser.c (cp_parser_alias_declaration): Require ';' at the end
	of the declaration.

2011-11-09  Dodji Seketeli  <dodji@redhat.com>

	PR debug/51032
	* decl2.c (check_member_template): Accept alias templates and ...
	* parser.c (cp_parser_alias_declaration): ... use it here.

2011-11-08  Jason Merrill  <jason@redhat.com>

	PR c++/50835
	* typeck.c (build_x_conditional_expr): Preserve lvalue/xvalueness.
	* tree.c (lvalue_kind) [NON_DEPENDENT_EXPR]: Return clk_ordinary
	in C++98.

2011-11-08  Richard Guenther  <rguenther@suse.de>

	PR middle-end/51010
	* error.c (dump_expr): Handle SSA_NAMEs.

2011-11-07  Richard Henderson  <rth@redhat.com>
	    Aldy Hernandez  <aldyh@redhat.com>
	    Torvald Riegel  <triegel@redhat.com>

	Merged from transactional-memory.

	* call.c (build_new_function_call): Call tm_malloc_replacement.
	* class.c (check_bases): Compute transaction attributes for the
	class based on its base classes.
	(look_for_tm_attr_overrides, set_one_vmethod_tm_attributes,
	set_method_tm_attributes): New.
	(finish_struct_1): Call set_method_tm_attributes.
	* cp-tree.h (begin_transaction_stmt, finish_transaction_stmt,
	build_transaction_expr): Declare.
	(TRANSACTION_EXPR_IS_STMT): New.
	* decl.c (push_cp_library_fn): Set attribute to transaction_safe.
	* except.c (do_get_exception_ptr): Apply transaction_pure.
	(do_begin_catch): Mark _ITM_cxa_begin_catch transaction_pure and
	record as transactional-memory wrapper.
	(do_end_catch): Similarly for _ITM_cxa_end_catch.
	(do_allocate_exception): Similarly for _ITM_cxa_allocate_exception.
	(build_throw): Similarly for _ITM_cxa_throw. Make __cxa_rethrow pure.
	* parser.h (struct cp_parser): Add in_transaction flag.
	* parser.c (enum non_integral_constant): Add NIC_TRANSACTION.
	(cp_parser_non_integral_constant_expression): Handle NIC_TRANSACTION.
	(enum required_token): Add transaction tokens.
	(cp_parser_transaction, cp_parser_transaction_expression,
	cp_parser_function_transaction, cp_parser_transaction_cancel,
	cp_parser_txn_attribute_opt): New.
	(cp_parser_unary_expression): Handle RID_TRANSACTION*.
	(cp_parser_statement, cp_parser_function_definition_after_declarator,
	cp_parser_token_starts_function_definition_p): Same.
	(cp_parser_required_error): Handle RT_TRANSACTION*.
	* pt.c (tsubst_expr): Handle TRANSACTION_EXPR.
	* semantics.c (begin_transaction_stmt, finish_transaction_stmt,
	build_transaction_expr): New.

2011-11-08  Dodji Seketeli  <dodji@redhat.com>

	Fix context handling of alias-declaration
	* decl.c (start_decl): Update comment.
	* error.c (dump_alias_template_specialization): Dump the context
	of the specialization.
	* parser.c (cp_parser_alias_declaration): Call pop_scope on the
	pushed scope yielded by start_decl.

2011-11-08  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/50864
	* parser.c (cp_parser_postfix_dot_deref_expression): Reject invalid
	uses of '->' and '.' as postfix-expression in namespace scope.

2011-11-07  Jason Merrill  <jason@redhat.com>

	PR c++/50848
	* pt.c (tsubst_copy_and_build) [CALL_EXPR]: Don't crash
	if lookup finds a non-function.

	PR c++/50863
	* parser.c (cp_parser_initializer_list): Parse C99
	array designators tentatively.

	PR c++/50870
	* pt.c (tsubst_copy): Handle NAMESPACE_DECL.
	(tsubst_copy_and_build) [COMPONENT_REF]: Handle a still-dependent
	object.

2011-11-07  Paolo Carlini  <paolo.carlini@oracle.com>

	* pt.c (tsubst_copy_and_build): Fix qualified_name_lookup_error
	call in case COMPONENT_REF.

2011-11-07  Jason Merrill  <jason@redhat.com>
	    Dodji Seketeli  <dodji@redhat.com>

	Support C++11 alias-declaration
	PR c++/45114
	* cp-tree.h (TYPE_DECL_ALIAS_P, TYPE_ALIAS_P)
	(DECL_TYPE_TEMPLATE_P, DECL_ALIAS_TEMPLATE_P): New accessor
	macros.
	(TYPE_TEMPLATE_INFO): Get template info of an alias template
	specializations from its TYPE_DECL.
	(SET_TYPE_TEMPLATE_INFO): Set template info of alias template
	specializations into its TYPE_DECL.
	(DECL_CLASS_TEMPLATE_P): Re-write using the new
	DECL_TYPE_TEMPLATE_P.
	(enum cp_decl_spec): Add new ds_alias enumerator.
	(alias_type_or_template_p, alias_template_specialization_p):
	Declare new functions.
	* parser.c (cp_parser_alias_declaration): New static function.
	(cp_parser_check_decl_spec): Add "using" name for the `alias'
	declspec.
	(cp_parser_type_name): Update comment.  Support simple-template-id
	representing alias template specializations in c++0x mode.
	(cp_parser_qualifying_entity): Update comment.  Use
	cp_parser_type_name.
	(cp_parser_block_declaration): Handle alias-declaration in c++11.
	Update comment.
	(cp_parser_template_id): Handle specializations of alias
	templates.
	(cp_parser_member_declaration): Add alias-declaration production
	to comment.  Support alias-declarations.
	(cp_parser_template_declaration_after_export): Handle alias
	templates in c++11.
	* decl.c (make_typename_type, make_unbound_class_template): Accept
	alias templates.
	(grokdeclarator): Set TYPE_DECL_ALIAS_P on alias
	declarations.
	* decl2.c (grokfield): Move template creation after setting up the
	TYPE_DECL of the alias, so that the TEMPLATE_DECL of the alias
	template actually carries the right type-id of the alias
	declaration.
	* pt.c (alias_type_or_template_p)
	(alias_template_specialization_p): Define new public functions.
	(maybe_process_partial_specialization): Reject partial
	specializations of alias templates.
	(primary_template_instantiation_p): Consider alias template
	instantiations.
	(push_template_decl_real): Assert that TYPE_DECLs of alias
	templates are different from those of class template.  Store
	template info onto the TYPE_DECL of the alias template.
	(convert_template_argument): Strip aliases from template
	arguments.
	(lookup_template_class_1): Handle the creation of the
	specialization of an alias template.
	(tsubst_decl): Create a substituted copy of the TYPE_DECL of an
	member alias template.
	(tsubst): Handle substituting into the type of an alias template.
	Handle substituting UNBOUND_CLASS_TEMPLATE into
	BOUND_TEMPLATE_TEMPLATE_PARM.
	(do_type_instantiation): Better diagnostics when trying to
	explicitely instantiate a non-class template.
	* search.c (lookup_field_1, lookup_field_r): Support looking up
	alias templates.
	* semantics.c (finish_template_type): For instantiations of alias
	templates, return the TYPE_DECL of the actual alias and not the
	one of the aliased type.
	* error.c (dump_alias_template_specialization): New static
	function.
	(dump_type): Handle printing of alias templates and their
	specializations.  templates.
	(dump_aggr_type): For specialization of alias templates, fetch
	arguments from the right place.
	(dump_decl): Print an alias-declaration like `using decl = type;'
	(dump_template_decl):  Support printing of alias templates.

2011-11-07  Jason Merrill  <jason@redhat.com>

	PR c++/35688
	* decl2.c (constrain_visibility): Return void.  Add tmpl parm
	which gives the constraint priority over an attribute.
	(constrain_visibility_for_template, determine_visibility): Adjust.
	* pt.c (instantiate_class_template_1): Call determine_visibility.

	PR c++/33255
	* decl.c (save_function_data): Clear local_typedefs.

	* decl.c (cp_finish_decl): Only make_tree_vector if we're calling
	check_initializer.

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

	PR c++/35688
	* decl2.c (constrain_visibility): Check decl_has_visibility_attr
	rather than DECL_VISIBILITY_SPECIFIED.

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

	PR c++/47695
	* decl2.c (mark_used): Early return false after error or sorry.
	* cp-tree.h (mark_used): Adjust declaration.
	* semantics.c (finish_id_expression): Check mark_used return value.

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

	PR c++/48370
	* decl.c (cp_finish_decl): Mostly revert previous change.

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

	PR c++/26714
	* init.c (perform_member_init): Strip TARGET_EXPR around NSDMI.
	Do temporary lifetime extension.

	PR c++/48370
	* decl.c (cp_finish_decl): Run cleanups in the right order.

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

	PR c++/50608
	* semantics.c (finish_offsetof): Adjust call to fold_offsetof.
	* typeck.c (cp_build_addr_expr_1): Call fold_offsetof_1.

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

	* typeck.c (build_indirect_ref): Use ATTRIBUTE_UNUSED.
	* mangle.c (write_unnamed_type_name): Likewise.

2011-11-04  Magnus Fromreide  <magfr@lysator.liu.se>

	* parser.c (cp_parser_enumerator_list): Do not warn about
	trailing commas in C++0x mode.

2011-11-04  Olivier Goffart  <olivier@woboq.com>
	    Jason Merrill  <jason@redhat.com>

	PR c++/50965
	* class.c (check_field_decls): NSDMI makes a class non-aggregate.

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

	PR c++/48420
	* call.c (conversion_null_warnings): For 'false' to NULL pointer,
	just check that TREE_TYPE (expr) is a BOOLEAN_TYPE.

2011-11-04  Ed Smith-Rowland  <3dw4rd@verizon.net>

	PR c++/50941
	* parser.c (cp_parser_userdef_string_literal): Fix string length.

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

	PR c++/48370
	* call.c (extend_ref_init_temps, extend_ref_init_temps_1): New.
	(set_up_extended_ref_temp): Use it.  Change cleanup parm to VEC.
	(initialize_reference): Just call convert_like.
	* decl.c (grok_reference_init): Just call initialize_reference.
	(build_init_list_var_init): Remove.
	(check_initializer): Change cleanup parm to VEC.  Handle references
	like other types.  Call perform_implicit_conversion instead
	of build_init_list_var_init.  Don't use build_aggr_init for
	aggregate initialization of arrays.
	(cp_finish_decl): Change cleanup to VEC.
	* typeck2.c (store_init_value): Call extend_ref_init_temps.
	Use build_vec_init for non-constant arrays.
	* init.c (expand_aggr_init_1): Adjust.
	(build_vec_init): Avoid re-converting an initializer
	that's already digested.
	* mangle.c (mangle_ref_init_variable): Add a discriminator.
	* cp-tree.h: Adjust.
	* typeck.c (convert_for_initialization): Adjust.
	* decl2.c (maybe_emit_vtables): Adjust.

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

	PR c++/50930
	* init.c (build_aggr_init): Don't set LOOKUP_ONLYCONVERTING
	if the initializer has TARGET_EXPR_DIRECT_INIT_P.
	(expand_default_init): An initializer with TARGET_EXPR_DIRECT_INIT_P
	or TARGET_EXPR_LIST_INIT_P doesn't need more processing.
	* tree.c (bot_manip): Propagate TARGET_EXPR_IMPLICIT_P,
	TARGET_EXPR_LIST_INIT_P, TARGET_EXPR_DIRECT_INIT_P.
	* call.c (convert_like_real): Set TARGET_EXPR_DIRECT_INIT_P
	as appropriate on list-value-initialization.

	* parser.c (cp_parser_decl_specifier_seq): Change "C++0x" to
	"C++11" in warnings.
	(cp_lexer_get_preprocessor_token): Likewise.
	(cp_parser_binary_expression): Likewise.

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

	PR c++/50810
	* typeck2.c (check_narrowing): Adjust OPT_Wnarrowing diagnostics.
	(digest_init_r): Call check_narrowing irrespective of the C++ dialect.
	* decl.c (check_initializer): Likewise.
	* semantics.c (finish_compound_literal): Likewise.

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

	PR c++/50956
	* typeck.c (build_const_cast_1): Fix -Wcast-qual for false
	comp_ptr_ttypes_const.

2011-11-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* Make-lang.in (g++spec.o): Pass SHLIB instead of SHLIB_LINK.

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

	PR c++/44277
	* cvt.c (cp_convert_to_pointer): Warn for zero as null pointer
	constant.
	* typeck.c (cp_truthvalue_conversion): Handle pointers and member
	function pointers under c_inhibit_evaluation_warnings; use
	nullptr_node for data member pointers.
	(cp_build_binary_op): Tweak, just forward to cp_convert op1,
	either a nullptr_node or an integer_zero_node.
	(build_ptrmemfunc): Use nullptr_node.
	* init.c (build_zero_init_1): Likewise.

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

	PR c++/50500
	DR 1082
	* search.c (lookup_fnfields_idx_nolazy): Split out from...
	(lookup_fnfields_1): ...here.
	(lookup_fnfields_slot_nolazy): Use it.
	* cp-tree.h: Declare it.
	* class.c (type_has_move_assign): Use it.
	(type_has_user_declared_move_assign): Likewise.

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

	PR c++/50920
	* class.c (check_field_decl): Change c++0x in diags to c++11.
	* error.c (maybe_warn_cpp0x): Likewise.
	* parser.c (cp_parser_diagnose_invalid_type_name): Likewise.
	* pt.c (check_default_tmpl_args): Likewise.

2011-10-31   Diego Novillo  <dnovillo@google.com>

	* mangle.c (get_mangled_id): Factor from ...
	(mangle_decl): ... here.
	Call get_mangled_id.

2011-10-25  Gerald Pfeifer  <gerald@pfeifer.com>

	* NEWS (GCC 2.95): Refer to GNU/Linux instead of Linux.
	(EGCS 1.0): Ditto.

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

	PR c++/50901
	* call.c (build_new_op_1): Handle ABS_EXPR together with the
	other unary EXPR.

2011-10-28  Paolo Carlini  <paolo.carlini@oracle.com>

	Revert:
	2011-10-28  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/50864
	* pt.c (tsubst_copy_and_build): Fix qualified_name_lookup_error
	call in case COMPONENT_REF.

2011-10-28  Paolo Carlini  <paolo.carlini@oracle.com>

	* pt.c (unify_pack_expansion): Initialize bad_old_arg and bad_new_arg.

2011-10-28  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/50864
	* pt.c (tsubst_copy_and_build): Fix qualified_name_lookup_error
	call in case COMPONENT_REF.

2011-10-27  Jason Merrill  <jason@redhat.com>

	* semantics.c (cxx_eval_outermost_constant_expr): Check
	cp_has_mutable_p.
	(cxx_eval_component_reference): Check DECL_MUTABLE_P.

2011-10-27  Roberto Agostino Vitillo  <ravitillo@lbl.gov>

	PR c++/30066
	* decl2.c (determine_hidden_inline): New function.
	(determine_visibility): fvisibility-inlines-hidden affects inline
	functions.

2011-10-27  Dodji Seketeli  <dodji@redhat.com>

	* cp-tree.h (DECL_DECLARES_TYPE_P): Fix comment.

2011-10-26  Jason Merrill  <jason@redhat.com>

	* typeck.c (check_literal_operator_args): Avoid building types.

2011-10-26  Ed Smith-Rowland  <3dw4rd@verizon.net>

	Implement C++11 user-defined literals.
	* cp-objcp-common.c: (cp_tree_size) Return size of USERDEF_LITERAL tree.
	* cp-tree.h: (UDLIT_OP_*, UDLIT_OPER_P): Literal operator
	name tools. New tree code for user-defined literals.
	* cxx-pretty-print.h: (pp_cxx_userdef_literal) New.
	* cxx-pretty-print.c: (pp_cxx_userdef_literal) New.
	(pp_cxx_primary_expression, pp_cxx_expression): Use it.
	* decl.c: (cp_tree_node_structure): Return new tree code.
	(duplicate_decls): Check for raw vs. template operator conflicts.
	(grokfndecl, grokdeclarator): New checks for literal operators.
	* error.c: (dump_expr): Warn about user-defined literals
	in C++98 mode. (dump_function_name): Pretty printing.
	* mangle.c: (write_literal_operator_name): New.
	(write_unqualified_id, write_unqualified_name): Use it.
	* parser.c: (cp_parser_operator): Handle operator"".
	(cp_parser_userdef_char_literal, cp_parser_userdef_numeric_literal,
	cp_parser_userdef_string_literal): New.
	(cp_parser_primary_expression): Handle new user-defined literal tokens
	with new functions.
	* semantics.c: (potential_constant_expression_1): Add
	user-defined literals.
	* typeck.c (check_raw_literal_operator,
	check_literal_operator_args): New.

2011-10-26  Paolo Carlini  <paolo.carlini@oracle.com>

	* typeck.c (cp_build_addr_expr_1): Use BASELINK_P.
	* class.c (instantiate_type): Likewise.
	* pt.c (convert_nontype_argument_function, uses_template_parms,
	tsubst_copy, resolve_nondeduced_context, type_dependent_expression_p):
	Likewise.
	* semantics.c (finish_decltype_type): Likewise.
	* decl2.c (mark_used): Likewise.
	* name-lookup.c (arg_assoc): Likewise.

2011-10-26  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/50870
	* typeck.c (non_reference): Pass NULL_TREE through.

2011-10-25  Jason Merrill  <jason@redhat.com>

	PR c++/50866
	PR c++/41449
	* semantics.c (maybe_cleanup_point_expr_void): No longer static.
	* typeck2.c (split_nonconstant_init_1): Use it.
	* cp-tree.h: Declare it.
	* decl.c (wrap_cleanups_r): Stop at CLEANUP_POINT_EXPR.

	PR c++/49996
	* tree.c (stabilize_init): Stabilize scalar elements of a
	CONSTRUCTOR, too.

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

	PR c++/50858
	* typeck.c (composite_pointer_type_r): Check return value of
	composite_pointer_type_r for error_mark_node.

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

	PR c++/50861
	* pt.c (tsubst_copy_and_build): Check return value of
	tsubst_copy_and_build for error_mark_node.

2011-10-23  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/50841
	Revert:
	2011-10-23  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/50810
	* typeck2.c (check_narrowing): Adjust OPT_Wnarrowing diagnostics.
	(digest_init_r): Call check_narrowing irrespective of the C++ dialect.
	* decl.c (check_initializer): Likewise.
	* semantics.c (finish_compound_literal): Likewise.

2011-10-23  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/50810
	* typeck2.c (check_narrowing): Adjust OPT_Wnarrowing diagnostics.
	(digest_init_r): Call check_narrowing irrespective of the C++ dialect.
	* decl.c (check_initializer): Likewise.
	* semantics.c (finish_compound_literal): Likewise.

2011-10-21  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/45385
	* init.c (build_vec_init): Early return error_mark_node if
	maxindex is -1.

2011-10-21  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/31423
	* typeck2.c (cxx_incomplete_type_diagnostic): Improve error message
	for invalid use of member function.

2011-10-21  Ville Voutilainen  <ville.voutilainen@gmail.com>

	PR c++/50811
	* parser.c (cp_parser_class_head): Parse virt-specifiers
	regardless of whether an id is present

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

	PR c++/41449
	* typeck2.c (split_nonconstant_init_1): Handle EH cleanup of
	initialized subobjects.

2011-10-19  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/13657
	* class.c (instantiate_type): Fix error message.

2011-10-19  Jason Merrill  <jason@redhat.com>

	PR c++/50793
	* tree.c (bot_manip): Propagate AGGR_INIT_ZERO_FIRST.

2011-10-19  Roland Stigge  <stigge@antcom.de>

	PR translation/49704
	* semantics.c (potential_constant_expression_1): Use "AST" instead of
	"ast" in sorry message.

2011-10-19  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/38761
	PR c++/40872
	* decl.c (duplicate_decls, make_typename_type, grokdeclarator): Use
	G_() in error message strings to facilitate translation.
	* semantics.c (finish_id_expression): Likewise.
	* parser.c (cp_parser_nested_name_specifier_opt,
	cp_parser_parameter_declaration): Likewise.

2011-10-18  Jason Merrill  <jason@redhat.com>

	PR c++/50531
	* pt.c (instantiate_decl): Recognize when a function defaulted
	outside the class is already instantiated.

	PR c++/50742
	* decl.c (check_previous_goto_1): Handle using-decl.

2011-10-18  Jason Merrill  <jason@redhat.com>

	PR c++/50500
	DR 1082
	* class.c (type_has_user_declared_move_constructor): New.
	(type_has_user_declared_move_assign): New.
	(add_implicitly_declared_members): Add lazy copy ops
	even if there's a move.
	* method.c (lazily_declare_fn): Delete implicit copies
	if there's a move.
	(maybe_explain_implicit_delete): Explain this.  Use inform rather
	than error.
	* cp-tree.h: Declare new fns.

2011-10-18   Diego Novillo  <dnovillo@google.com>

	* parser.c: Remove ENABLE_CHECKING markers around debugging
	routines.
	(cp_lexer_dump_tokens): Add arguments START_TOKEN and CURR_TOKEN.
	Make static
	When printing CURR_TOKEN surround it in [[ ]].
	Start printing at START_TOKEN.
	Update all users.
	(cp_debug_print_tree_if_set): New.
	(cp_debug_print_context): New.
	(cp_debug_print_context_stack): New.
	(cp_debug_print_flag): New.
	(cp_debug_print_unparsed_function): New.
	(cp_debug_print_unparsed_queues): New.
	(cp_debug_parser_tokens): New.
	(cp_debug_parser): New.
	(cp_lexer_start_debugging): Set cp_lexer_debug_stream to stderr.
	(cp_lexer_stop_debugging): Set cp_lexer_debug_stream to NULL.
	* parser.h (cp_lexer_dump_tokens): Remove declaration.
	(cp_debug_parser): Declare.

2011-10-17  Michael Spertus  <mike_spertus@symantec.com>

	* cp-tree.def: Add BASES as a new tree code.
	* cp-tree.h (enum cp_trait_kind): Add CPTK_BASES, CPTK_DIRECT_BASES.
	(BASES_TYPE, BASES_DIRECT): Define.
	(calculate_bases, finish_bases, calculate_direct_bases): Declare.
	* parser.c (cp_parser_trait_expr, cp_parser_template_argument_list,
	(cp_parser_simple_type_specifier, cp_parser_save_nsdmi): Use them.
	* pt.c (find_parameter_packs_r, tsubst_pack_expansion): Likewise.
	* semantics.c (calculate_bases, finish_bases, calculate_direct_bases,
	dfs_calculate_bases_pre, dfs_calculate_bases_post,
	calculate_bases_helper): Define.

2011-10-17  Jason Merrill  <jason@redhat.com>

	PR c++/50736
	* parser.c (cp_parser_lambda_introducer): Check for more
	invalid captures.

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

	PR c++/44524
	* typeck.c (build_class_member_access_expr): Provide a better error
	message for X.Y where X is a pointer to class type.
	(finish_class_member_access_expr): Likewise.

2011-10-15  Tom Tromey  <tromey@redhat.com>
	    Dodji Seketeli  <dodji@redhat.com>

	* error.c (cp_diagnostic_starter): Pass the relevant location to
	diagnostic_report_current_module.
	(cp_diagnostic_finalizer): Call virt_loc_aware_diagnostic_finalizer.

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

	PR c++/48489
	* typeck.c (finish_class_member_access_expr): Fix error call
	for TREE_CODE (access_path) == TREE_BINFO.

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

	PR c++/50732
	* semantics.c (finish_trait_expr): Do not try to instantiate the
	the base type of an __is_base_of trait.
	(check_trait_type): Return a tree; use complete_type_or_else.

2011-10-14  Jason Merrill  <jason@redhat.com>

	PR c++/50563
	* parser.c (cp_parser_cache_group): Handle end==CPP_COMMA.
	(cp_parser_save_nsdmi): Pass it.

	PR c++/50707
	* method.c (walk_field_subobs): Check for NSDMI before
	complaining about uninitialized fields.

	* pt.c (tsubst_decl) [FIELD_DECL]: Use void_zero_node
	instead of error_mark_node as a placeholder.

2011-10-14  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/38174
	* call.c (add_builtin_candidate): If two pointers have a composite
	pointer type, generate a single candidate with that type.

2011-10-13  Jason Merrill  <jason@redhat.com>

	PR c++/50614
	* cp-tree.h (VAR_TEMPL_TYPE_FIELD_OR_FUNCTION_DECL_CHECK): New.
	(DECL_TEMPLATE_INFO): Use it.
	* pt.c (tsubst_decl) [FIELD_DECL]: Set DECL_TEMPLATE_INFO
	if the decl has an NSDMI.
	* init.c (perform_member_init): Use it.

	PR c++/50437
	* cp-tree.h (struct tree_lambda_expr): Add closure field.
	(LAMBDA_EXPR_CLOSURE): New.
	* pt.c (tsubst_copy_and_build) [LAMBDA_EXPR]: Likewise.
	* semantics.c (build_lambda_object): Use it instead of TREE_TYPE.
	(begin_lambda_type, lambda_function, add_capture): Likewise.
	(add_default_capture, lambda_expr_this_capture): Likewise.

2011-10-13   Diego Novillo  <dnovillo@google.com>

	* cp-tree.h (struct language_function): Rename in_function_try_handler
	to x_in_function_try_handler.
	Rename in_base_initializer to x_in_base_initializer.
	Update all users.

2011-10-13   Diego Novillo  <dnovillo@google.com>

	* class.c (sorted_fields_type_new): Factor out of ...
	(finish_struct_1): ... here.

2011-10-13  Jason Merrill  <jason@redhat.com>

	PR c++/50618
	* init.c (expand_aggr_init_1): Don't zero-initialize virtual
	bases of a base subobject.

2011-10-12  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/50594
	* decl.c (cxx_init_decl_processing): Add
	__attribute__((externally_visible)) to operator new and
	operator delete library fn.

2011-10-11  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* decl.c (duplicate_decls): Delete old interface with two parallel
	arrays to hold standard builtin declarations, and replace it with
	a function based interface that can support creating builtins on
	the fly in the future.  Change all uses, and poison the old
	names.  Make sure 0 is not a legitimate builtin index.
	* except.c (build_eh_type_type): Ditto.
	(choose_personality_routine): Ditto.
	* semantics.c (finish_omp_atomic): Ditto.
	(finish_omp_barrier): Ditto.
	(finish_omp_flush): Ditto.
	(finish_omp_taskwait): Ditto.

2011-10-11  Jason Merrill  <jason@redhat.com>

	PR c++/49855
	PR c++/49896
	* cp-tree.def (IMPLICIT_CONV_EXPR): New.
	* call.c (perform_implicit_conversion_flags): Build it
	instead of NOP_EXPR.
	* cp-objcp-common.c (cp_common_init_ts): It's typed.
	* cxx-pretty-print.c (pp_cxx_cast_expression): Handle it.
	(pp_cxx_expression): Likewise.
	* error.c (dump_expr): Likewise.
	* semantics.c (potential_constant_expression_1): Likewise.
	* tree.c (cp_tree_equal): Likewise.
	(cp_walk_subtrees): Likewise.
	* pt.c (iterative_hash_template_arg): Likewise.
	(for_each_template_parm_r): Likewise.
	(type_dependent_expression_p): Likewise.
	(tsubst_copy, tsubst_copy_and_build): Handle IMPLICIT_CONV_EXPR
	and CONVERT_EXPR.
	* cp-tree.h (IMPLICIT_CONV_EXPR_DIRECT_INIT): New.

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

	PR c++/50611
	* pt.c (tsubst_copy_and_build): If (complain & tf_error) is false
	do not call unqualified_name_lookup_error.

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

	PR c++/50660
	* call.c (conversion_null_warnings): Don't look through references.

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

	PR c++/38980
	* init.c (constant_value_1): Add bool parameter.
	(decl_constant_value_safe): Add.
	(integral_constant_value): Adjust.
	(decl_constant_value): Adjust.
	* cp-tree.h (decl_constant_value_safe): Declare.
	* typeck.c (decay_conversion): Use decl_constant_value_safe.
	* call.c (convert_like_real): Likewise.

2011-10-09  Jakub Jelinek  <jakub@redhat.com>
	    Diego Novillo  <dnovillo@google.com>

	* pt.c (reregister_specialization): Use htab_find instead of
	htab_find_slot with INSERT.
	(maybe_process_partial_specialization, lookup_template_class_1): Change
	slot variable type to void ** to avoid aliasing problems.
	(register_specialization): Likewise.  Use slot != NULL instead of
	more expensive !optimize_specialization_lookup_p (tmpl) test.

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

	PR c++/34927
	* typeck2.c (abstract_virtuals_error_sfinae): Don't produce duplicate
	inform messages in case of cloned destructor.

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

	PR c++/39164
	* decl.c (grokfndecl): Diagnose redefinition of defaulted fn.

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

	* pt.c (tsubst_pack_expansion): Re-use ARGUMENT_PACK_SELECTs.
	Change unsubstituted_packs to bool.

	* parser.c (cp_parser_range_for): Don't try to deduce from {}
	in a template.

	PR c++/35722
	Implement N2555 (expanding pack expansion to fixed parm list)
	* pt.c (coerce_template_parms): Allow expanding a pack expansion
	to a fixed-length argument list.
	(unify_pack_expansion): Handle explicit args properly.
	(unify) [TREE_VEC]: Handle pack expansions here.
	[TYPE_ARGUMENT_PACK]: Not here.
	(tsubst_pack_expansion): Don't try to do partial substitution.
	(pack_deducible_p): New.
	(fn_type_unification): Use it.
	(find_parameter_packs_r): Take the TYPE_MAIN_VARIANT
	of a type parameter.
	(check_non_deducible_conversion): Split from type_unification_real.
	(unify_one_argument): Split from type_unification_real...
	(unify_pack_expansion): ...and here.  Drop call_args_p parm.
	(type_unification_real, unify, more_specialized_fn): Adjust.

	* class.c (fixed_type_or_null): Handle NSDMI.
	* method.c (walk_field_subobs): Disable NSDMI noexcept checking
	for now.

2011-09-30  Jason Merrill  <jason@redhat.com>

	* cp-tree.h (TREE_NEGATED_INT): Remove.
	* semantics.c (finish_unary_op_expr): Don't set it.

2011-09-30  Janis Johnson  <janisjo@codesourcery.com>

	PR c++/44473
	* mangle.c (write_type): Handle CV qualifiers for decimal classes.

2011-09-26   Andi Kleen <ak@linux.intel.com>

	* repo.c (finish_repo): Use HOST_WIDE_INT_PRINT_HEX_PURE.

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

	PR c++/45278
	* typeck.c (cp_build_binary_op): With -Wextra, warn for ordered
	comparison of pointer with zero.

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

	PR c++/31489
	* parser.c (cp_parser_elaborated_type_specifier): For RECORD_TYPE,
	set CLASSTYPE_DECLARED_CLASS.

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

	* decl.c (duplicate_decls): If compatible stpcpy prototype
	is seen, set implicit_built_in_decls[BUILT_IN_STPCPY].

2011-09-26  Jason Merrill  <jason@redhat.com>

	PR c++/45012
	* pt.c (tsubst_copy_and_build) [CONST_DECL]: Don't pull out
	constant value if we're still in a template.

	PR c++/46105
	* typeck.c (structural_comptypes): Ignore cv-quals on typename scope.

	PR c++/50508
	* semantics.c (cxx_eval_logical_expression): Use tree_int_cst_equal
	rather than ==.

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

	PR c++/45487
	* error.c (dump_template_bindings): Separate bindings with semicolons
	instead of commas.

2011-09-26  Jason Merrill  <jason@redhat.com>

	PR c++/50512
	* call.c (compare_ics): Only consider rvaluedness_matches_p
	if the target type is the same or it too differs in rvalueness.

	PR c++/50523
	* call.c (implicit_conversion): Mask out inappropriate LOOKUP
	flags at the top of the function.

	* pt.c (tsubst_copy) [PARM_DECL]: Handle 'this' in NSDMI.

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

	* pt.c (convert_nontype_argument): Handle NULLPTR_TYPE.

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

	PR c++/26747
	* cp-gimplify.c (get_bc_label): Remove obsolete diagnostics.

2011-09-25  Jason Merrill  <jason@redhat.com>

	* parser.c (inject_this_parameter): Split out from
	cp_parser_late_return_type_opt.
	(cp_parser_class_specifier_1): Use it for NSDMIs.
	* tree.c (bot_replace): Replace NSDMI 'this' with real 'this'.

2011-09-24  Jason Merrill  <jason@redhat.com>

	* except.c (expr_noexcept_p): Split out from finish_noexcept_expr.
	* cp-tree.h: Declare it.
	* method.c (walk_field_subobs): Use it.

	* init.c (perform_member_init): Instantiate NSDMI here.
	* pt.c (tsubst_decl) [FIELD_DECL]: Not here.

	Handle deferred parsing of NSDMIs.
	* parser.h (cp_unparsed_functions_entry): Add nsdmis field.
	* parser.c (unparsed_nsdmis, cp_parser_save_nsdmi): New.
	(cp_parser_late_parse_one_default_arg): Split out from
	cp_parser_late_parsing_default_args.
	(cp_parser_late_parsing_nsdmi): New.
	(push_unparsed_function_queues): Set it.
	(cp_parser_parameter_declaration): Save the '=' token.
	(cp_parser_template_parameter): Likewise.
	(cp_parser_default_argument): Call cp_parser_initializer
	rather than cp_parser_initializer_clause.
	(cp_parser_class_specifier_1): Parse unparsed_nsdmis.
	(cp_parser_member_declaration): Handle nsdmis.
	* decl2.c (grokfield): Handle DEFAULT_ARG for a function.

	Implement C++11 non-static data member initializers.
	* cp-tree.h (enum cpp_warn_str): Add CPP0X_NSDMI.
	* error.c (maybe_warn_cpp0x): Handle it.
	* call.c (convert_like_real) [ck_user]: Don't complain about
	using an explicit constructor for direct-initialization.
	* class.c (check_field_decl): Fix ancient typo.
	(check_field_decls): NSDMIs make the default ctor non-trivial.
	* decl.c (cp_finish_decl): Record NSDMI.
	(grokdeclarator): Allow NSDMI.
	* decl2.c (grokfield): Allow NSDMI.  Correct LOOKUP flags.
	* init.c (perform_member_init): Use NSDMI.
	* method.c (walk_field_subobs): Check for NSDMI.
	* parser.c (cp_parser_member_declaration): Parse { } init.
	* semantics.c (register_constexpr_fundef): Don't talk about
	a return statement in a constexpr constructor.
	(cxx_eval_call_expression): Check DECL_INITIAL instead of
	DECL_SAVED_TREE.

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

	PR c++/44267
	* class.c (build_base_path): Add a tsubst_flags_t parameter.
	(convert_to_base): Adjust call.
	* typeck.c (build_class_member_access_expr,
	get_member_function_from_ptrfunc, build_static_cast_1): Likewise.
	* init.c (dfs_initialize_vtbl_ptrs, emit_mem_initializers): Likewise.
	* method.c (do_build_copy_constructor, do_build_copy_assign): Likewise.
	* rtti.c (build_dynamic_cast_1): Likewise.
	* typeck2.c (build_scoped_ref, build_m_component_ref): Likewise.
	* call.c (build_over_call, build_special_member_call): Likewise.
	* cvt.c (cp_convert_to_pointer, convert_to_pointer_force,
	build_up_reference): Likewise.
	* cp-tree.h (build_base_path): Adjust declaration.

2011-09-23  Jason Merrill  <jason@redhat.com>

	Core 253 - allow const objects with no initializer or
	user-provided default constructor if the defaulted constructor
	initializes all the subobjects.
	PR c++/20039
	PR c++/42844
	* class.c (default_init_uninitialized_part): New.
	* cp-tree.h: Declare it.
	* decl.c (check_for_uninitialized_const_var): Use it.
	* init.c (perform_member_init): Likewise.
	(build_new_1): Likewise.
	* method.c (walk_field_subobs): Likewise.

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

	PR c++/50258
	* decl.c (check_static_variable_definition): Allow in-class
	initialization of static data member of non-integral type in
	permissive mode.

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

	PR c++/50491
	* semantics.c (potential_constant_expression_1): Handle USING_DECL.

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

	PR c++/50371
	* pt.c (invalid_nontype_parm_type_p): Handle NULLPTR_TYPE.

2011-09-22  Jonathan Wakely  <jwakely.gcc@gmail.com>
	    Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/50344
	* friend.c (make_friend_class): cv-qualification is ok in a
	friend declaration.

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

	PR c++/50454
	* decl.c (grokdeclarator): Consistently handle both __int128
	and unsigned __int128 with -pedantic; suppress diagnostic in
	system headers.

2011-09-20  Jason Merrill  <jason@redhat.com>

	* cp-tree.h (DECL_TEMPLOID_INSTANTIATION): New.
	(DECL_GENERATED_P): New.
	* class.c (finalize_literal_type_property): Use them.
	* semantics.c (is_instantiation_of_constexpr): Likewise.
	(register_constexpr_fundef): Likewise.

	* call.c (convert_default_arg): Avoid redundant copy.
	* tree.c (bot_manip): Copy everything.

2011-09-20 Roberto Agostino Vitillo <ravitillo@lbl.gov>

	* call.c (build_new_method_call_1): Use non-virtual lookup
	for final virtual functions.

2011-09-16  Jason Merrill  <jason@redhat.com>

	PR c++/50424
	* call.c (set_flags_from_callee): Split out from build_call_a.
	* cp-tree.h: Declare it.
	* tree.c (bot_manip): Call it.

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

	PR c++/50365
	* parser.c (cp_parser_late_return_type_opt): Check quals parameter
	for clearing current_class_ptr, too.

2011-09-14   Diego Novillo  <dnovillo@google.com>

	* name-lookup.c (lookup_arg_dependent): Use conditional
	timevars.
	* decl.c (xref_tag): Likewise.

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

	PR c++/50391
	* pt.c (regenerate_decl_from_template): Don't pass an error_mark_node
	to build_exception_variant.

2011-09-13  Dodji Seketeli  <dodji@redhat.com>

	PR c++/48320
	* pt.c (template_parameter_pack_p): Support TEMPLATE_PARM_INDEX
	nodes.  Add a comment.
	(arg_from_parm_pack_p):  New static function, factorized out from
	tsubst_pack_expansion and extended to support non-type parameter
	packs represented with TEMPLATE_PARM_INDEX nodes.
	(tsubst_pack_expansion): Use arg_from_parm_pack_p.

2011-09-12  Jason Merrill  <jason@redhat.com>

	* pt.c (type_unification_real): Fix handling of DEDUCE_CONV
	with no deducible template parameters.
	* call.c (rejection_reason_code): Add rr_template_conversion.
	(print_z_candidate): Handle it.
	(template_conversion_rejection): New.
	(build_user_type_conversion_1): Use it.

	* call.c (merge_conversion_sequences): Set bad_p and user_conv_p
	on all of the second conversion sequence.
	(build_user_type_conversion_1): Set bad_p on the ck_user conv.
	(convert_like_real): Handle bad ck_ref_bind with user_conv_p in the
	first section.  Fix loop logic.
	(initialize_reference): Call convert_like for diagnostics when
	we have a (bad) conversion.

	* call.c (convert_class_to_reference)
	(convert_class_to_reference_1): Remove.
	(reference_binding): Use build_user_type_conversion_1 instead.

	* call.c (initialize_reference): Add flags parm.
	* decl.c (grok_reference_init): Likewise.
	(check_initializer): Pass it.
	* typeck.c (convert_for_initialization): Likewise.
	* cp-tree.h: Adjust.

	* cp-tree.h (LOOKUP_NO_RVAL_BIND): New.
	* call.c (conditional_conversion): Use it.
	(reference_binding): Fix handling of xvalues.

2011-09-09  Jason Merrill  <jason@redhat.com>

	* call.c (implicit_conversion): Check BRACE_ENCLOSED_INITIALIZER_P
	before forcing instantiation.

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

	PR c++/50324
	* typeck2.c (digest_init_r): Call complete_type_or_maybe_complain
	instead of complete_type_or_else.

2011-09-08  Dodji Seketeli  <dodji@redhat.com>

	PR c++/33255 - Support -Wunused-local-typedefs warning
	* name-lookup.c (pushdecl_maybe_friend_1): Use the new
	record_locally_defined_typedef.
	* decl.c (finish_function): Use the new
	maybe_warn_unused_local_typedefs.
	(grokfield): Use the new record_locally_defined_typedef.
	* parser.c (lookup_name): Use the new maybe_record_typedef_use.

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

	PR c++/50309
	* decl.c (grokdeclarator): Check u.function.exception_specification
	for error_mark_node.

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

	PR c++/50298
	* parser.c (cp_parser_member_declaration): Don't require a constant
	rvalue here in C++0x.

	* pt.c (type_unification_real): Correct complain arg for tsubsting
	default template args.

	* pt.c (tsubst_aggr_type): Check TYPE_P before tsubsting.

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

	PR c++/50296
	* semantics.c (register_constexpr_fundef): Call is_valid_constexpr_fn.
	(cx_check_missing_mem_inits): Handle bases and empty trivial members.
	(validate_constexpr_fundecl): Remove.
	* decl.c (start_preparsed_function): Don't call it.
	* cp-tree.h: Don't declare it.

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

	PR c++/49267
	* call.c (reference_binding): Don't set is_lvalue for an rvalue
	reference rfrom.

	PR c++/49267
	PR c++/49458
	DR 1328
	* call.c (reference_binding): Set rvaluedness_matches_p properly
	for reference to function conversion ops.
	(compare_ics): Adjust.

	* class.c (trivial_default_constructor_is_constexpr): Rename from
	synthesized_default_constructor_is_constexpr.
	(type_has_constexpr_default_constructor): Adjust.
	(add_implicitly_declared_members): Call it instead.
	(explain_non_literal_class): Explain about non-constexpr default ctor.
	* cp-tree.h: Adjust.
	* method.c (synthesized_method_walk): Adjust.
	* semantics.c (explain_invalid_constexpr_fn): Handle defaulted
	functions, too.

	PR c++/50248
	Core 1358
	* init.c (perform_member_init): Don't diagnose missing inits here.
	(emit_mem_initializers): Or here.
	* method.c (process_subob_fn): Don't instantiate constexpr ctors.
	* semantics.c (cx_check_missing_mem_inits): New.
	(explain_invalid_constexpr_fn): Call it.
	(register_constexpr_fundef): Likewise.  Leave
	DECL_DECLARED_CONSTEXPR_P set when the body is unsuitable.
	(cxx_eval_call_expression): Adjust diagnostics.
	(cxx_eval_constant_expression): Catch use of 'this' in a constructor.

2011-08-30  Jason Merrill  <jason@redhat.com>

	PR c++/50084
	* cp-tree.h (cp_decl_specifier_seq): Rename user_defined_type_p
	to type_definition_p.
	* parser.c (cp_parser_set_decl_spec_type): Likewise.
	* decl.c (grokdeclarator): Check it.

	PR c++/50089
	* semantics.c (finish_id_expression): Use
	current_nonlambda_class_type for qualified-ids.

	PR c++/50114
	* decl.c (poplevel): Disable for scope compatibility hack
	in C++11 mode.

	PR c++/50220
	* semantics.c (add_capture): Call complete_type for copy.

	PR c++/50234
	* semantics.c (cxx_eval_component_reference): Handle
	value-initialization for omitted initializers.

2011-08-29  Jason Merrill  <jason@redhat.com>

	PR c++/50224
	* semantics.c (finish_id_expression): Mark captured variables used.

2011-08-29  Jakub Jelinek  <jakub@redhat.com>
	    Jason Merrill  <jason@redhat.com>

	PR c++/50207
	* class.c (finish_struct_1): Complain if the first field is
	artificial.

2011-08-29  Jason Merrill  <jason@redhat.com>

	PR c++/50209
	Core DR 994
	* parser.c (cp_parser_default_argument): Use
	cp_parser_initializer_clause.
	(cp_parser_late_parsing_default_args): Likewise.

2011-08-26  Jason Merrill  <jason@redhat.com>

	Core DR 342
	PR c++/48582
	* pt.c (check_valid_ptrmem_cst_expr): A null member pointer value
	is valid in C++11.
	(convert_nontype_argument): Likewise.  Implicitly convert nullptr
	and do constant folding.
	* mangle.c (write_template_arg_literal): Mangle null member
	pointer values as 0.
	* call.c (null_member_pointer_value_p): New.
	* cp-tree.h: Declare it.

2011-08-25  Jason Merrill  <jason@redhat.com>

	* call.c (convert_like_real): Remove redundant complain checks.

	PR c++/50157
	* call.c (convert_like_real): Exit early if bad and !tf_error.

2011-08-23  Jason Merrill  <jason@redhat.com>

	* typeck2.c (build_functional_cast): Don't try to avoid calling
	build_value_init.
	* pt.c (instantiate_class_template_1): Don't copy TYPE_HAS_* flags.

2011-08-23  Jason Merrill  <jason@redhat.com>

	PR c++/49045
	Core 1321
	* tree.c (dependent_name): New.
	(cp_tree_equal): Two calls with the same dependent name are
	equivalent even if the overload sets are different.

2011-08-23  Jason Merrill  <jason@redhat.com>

	* tree.c (build_target_expr): Set TREE_CONSTANT on
	literal TARGET_EXPR if the value is constant.
	* typeck2.c (build_functional_cast): Don't set it here.

2011-08-23  Jason Merrill  <jason@redhat.com>

	Core 903 (partial)
	* call.c (null_ptr_cst_p): Only 0 qualifies in C++11.

2011-08-23  Jason Merrill  <jason@redhat.com>

	Core 975
	* decl.c (cxx_init_decl_processing): Initialize
	dependent_lambda_return_type_node.
	* cp-tree.h (cp_tree_index): Add CPTI_DEPENDENT_LAMBDA_RETURN_TYPE.
	(dependent_lambda_return_type_node): Define.
	(DECLTYPE_FOR_LAMBDA_RETURN): Remove.
	* semantics.c (lambda_return_type): Handle overloaded function.
	Use dependent_lambda_return_type_node instead of
	DECLTYPE_FOR_LAMBDA_RETURN.
	(apply_lambda_return_type): Don't check dependent_type_p.
	* pt.c (tsubst_copy_and_build): Handle lambda return type deduction.
	(instantiate_class_template_1): Likewise.
	(tsubst): Don't use DECLTYPE_FOR_LAMBDA_RETURN.
	* mangle.c (write_type): Likewise.
	* typeck.c (structural_comptypes): Likewise.
	(check_return_expr): Handle dependent_lambda_return_type_node.

2011-08-23  Jason Merrill  <jason@redhat.com>

	PR c++/50024
	* semantics.c (maybe_constant_value): Don't try to fold { }.
	* pt.c (build_non_dependent_expr): Don't wrap { }.
	* init.c (build_value_init): Allow scalar value-init in templates.

2011-08-23  Jason Merrill  <jason@redhat.com>

	* semantics.c (potential_constant_expression_1): Allow 'this'.

2011-08-23  Jakub Jelinek  <jakub@redhat.com>

	PR c++/50158
	* typeck.c (cp_build_modify_expr): Call mark_rvalue_use on rhs
	if it has side-effects and needs to be preevaluated.

2011-08-23  Siddhesh Poyarekar  <siddhesh.poyarekar@gmail.com>

	PR c++/50055
	* except.c (begin_eh_spec_block): Build EH_SPEC block on the
	same line as the function.

2011-08-23  Jakub Jelinek  <jakub@redhat.com>

	PR c++/46862
	* class.c (finish_struct_1): If TYPE_TRANSPARENT_AGGR is set on a type
	which doesn't have any fields, clear it and diagnose.

2011-08-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
	    Marc Glisse  <marc.glisse@normalesup.org>

	PR libstdc++-v3/1773
	* mangle.c (decl_mangling_context): Call
	targetm.cxx.decl_mangling_context.
	(write_unscoped_name): Use decl_mangling_context.

2011-08-18  Dodji Seketeli  <dodji@redhat.com>

	PR c++/45625
	* pt.c (parameter_of_template_p): Handle comparison with DECLs of
	template parameters as created by process_template_parm.

2011-08-16  Jason Merrill  <jason@redhat.com>

	PR c++/50086
	* pt.c (unify_pack_expansion): Correct overloaded unification
	logic.

	* pt.c (instantiate_class_template_1): If DECL_PRESERVE_P is set
	on a member function or static data member, call mark_used.

	PR c++/50054
	* typeck2.c (cxx_incomplete_type_diagnostic): Handle
	init_list_type_node.

2011-08-13  Jason Merrill  <jason@redhat.com>

	PR c++/50075
	* name-lookup.c (local_bindings_p): New.
	* name-lookup.h: Declare it.
	* lex.c (unqualified_name_lookup_error): Use it.

	PR c++/50059
	* error.c (dump_expr): Handle MODIFY_EXPR properly.

	* decl.c (grok_reference_init): Handle constexpr here.
	* call.c (initialize_reference): Not here.

2011-08-12  David Li  <davidxl@google.com>

	* class.c (update_vtable_entry_for_fn): Set
	LOST_PRIMARY bit properly.

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

	PR c++/50034
	* call.c (convert_arg_to_ellipsis): force_rvalue only in
	potentially evaluated context.

2011-08-12  Richard Guenther  <rguenther@suse.de>

	* call.c (build_over_call): Instead of memcpy use an
	assignment of two MEM_REFs.

2011-08-11  Romain Geissler  <romain.geissler@gmail.com>
	    Brian Hackett  <bhackett1024@gmail.com>

	* decl.c (cp_finish_decl): Invoke callbacks on finish_decl event.

2011-08-10  Richard Guenther  <rguenther@suse.de>

	* call.c (build_over_call): Call memcpy unconditionally.

2011-08-08  Jason Merrill  <jason@redhat.com>

	PR c++/50020
	* semantics.c (finish_call_expr): Don't look at 'this' if we
	had an explicit object argument.

	PR c++/50011
	* typeck2.c (check_narrowing): Fix integer logic.

2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* Make-lang.in (g++$(exeext)): Add $(EXTRA_GCC_LIBS).

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

	PR c++/48993
	* semantics.c (potential_constant_expression_1) [CALL_EXPR]: Sorry
	on 'this' in a constructor.

	PR c++/49921
	* semantics.c (finish_decltype_type): Call invalid_nonstatic_memfn_p.

	PR c++/49669
	* init.c (perform_member_init): Handle invalid array initializer.

	PR c++/49988
	* semantics.c (cxx_eval_array_reference): Handle failure to
	reduce the array operand to something we can work with.

2011-08-05  Gabriel Charette  <gchare@google.com>

	* decl.c (finish_function): Remove unecessary line 0 hack.

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

	PR c++/47453
	* typeck.c (build_x_compound_expr_from_list): Also complain
	about ({...}).

	PR c++/49812
	* typeck.c (cp_build_unary_op) [POSTINCREMENT_EXPR]: Strip cv-quals.

	PR c++/49983
	* parser.c (cp_parser_range_for): Only do auto deduction in
	template if the range is non-dependent.

	* init.c (perform_member_init): Always build_aggr_init
	for a class member with an explicit mem-initializer.

	* pt.c (unify) [TEMPLATE_TYPE_PARM]: Allow VLA for C++0x 'auto'.

2011-08-04  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/49905
	* decl.c (cxx_init_decl_processing): Add alloc_size (1) attribute
	for operator new and operator new [].  Call init_attributes.

2011-08-02  Jason Merrill  <jason@redhat.com>

	PR c++/43886
	* parser.c (cp_parser_lambda_body): Clear local_variables_forbidden_p.

	PR c++/49577
	* typeck2.c (check_narrowing): Check unsigned mismatch.
	* semantics.c (finish_compound_literal): check_narrowing.

	PR c++/49593
	* pt.c (find_parameter_packs_r): Handle CONSTRUCTOR.

	PR c++/49803
	* init.c (sort_mem_initializers): Initialize uses_unions_p here.
	(build_field_list): Not here.

	PR c++/49834
	* parser.c (build_range_temp): Split out from...
	(cp_convert_range_for): ...here.
	(do_range_for_auto_deduction): New.
	(cp_parser_range_for): Use it.

2011-08-02  Jakub Jelinek  <jakub@redhat.com>

	* cp-tree.h (finish_omp_atomic): Adjust prototype.
	(cxx_omp_const_qual_no_mutable): New prototype.
	(finish_omp_taskyield): New prototype.
	* parser.c (cp_parser_omp_atomic): (cp_parser_omp_atomic): Handle
	parsing OpenMP 3.1 atomics.  Adjust finish_omp_atomic caller.
	(cp_parser_omp_clause_name): Handle final and mergeable clauses.
	(cp_parser_omp_clause_final, cp_parser_omp_clause_mergeable): New
	functions.
	(cp_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_FINAL
	and PRAGMA_OMP_CLAUSE_MERGEABLE.
	(OMP_TASK_CLAUSE_MASK): Allow final and mergeable clauses.
	(cp_parser_omp_taskyield): New function.
	(cp_parser_pragma): Handle PRAGMA_OMP_TASKYIELD.
	(cp_parser_omp_clause_reduction): Handle min and max.
	* pt.c (tsubst_expr) <case OMP_ATOMIC>: Handle OpenMP 3.1 atomics.
	(tsubst_omp_clauses): Handle OMP_CLAUSE_FINAL and
	OMP_CLAUSE_MERGEABLE.
	* semantics.c (finish_omp_atomic): Add OPCODE, V, LHS1 and RHS1
	arguments.  Handle OpenMP 3.1 atomics.  Adjust c_finish_omp_atomic
	caller.
	(finish_omp_clauses): Don't complain about const qualified
	predetermined vars and static data members in firstprivate clause.
	Handle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE. Handle MIN_EXPR
	and MAX_EXPR.
	(finish_omp_taskyield): New function.
	* cp-gimplify.c (cxx_omp_const_qual_no_mutable): New function.
	(cxx_omp_predetermined_sharing): Use it.

2011-08-02  Jason Merrill  <jason@redhat.com>

	* call.c (build_call_a): Also check at_function_scope_p.

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

	PR c++/49932
	* mangle.c (write_prefix): Handle decltype.

	PR c++/49924
	* semantics.c (cxx_eval_vec_init_1): Fix logic.

	PR c++/49813
	* semantics.c (potential_constant_expression_1): Allow any builtin.
	(morally_constexpr_builtin_function_p): Remove.

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

	PR c++/49867
	* parser.c (cp_parser_lambda_expression): Also clear in_statement
	and in_switch_statement_p.
	(cp_parser_class_specifier): Likewise.

2011-07-28  Jason Merrill  <jason@redhat.com>

	PR c++/49808
	* pt.c (tsubst) [TEMPLATE_PARM_INDEX]: Call convert_from_reference.
	(convert_nontype_argument, tsubst_template_arg): Handle its output.

2011-07-28  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/49813
	* semantics.c (potential_constant_expression_1):  Handle FMA_EXPR.

2011-07-27  Jeffrey Yasskin  <jyasskin@google.com>

	* pt.c (build_template_decl): Copy the function_decl's
	source location to the new template_decl.

2011-07-26  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/49776
	* typeck.c (cp_build_modify_expr): Check digest_init return value
	for error_mark_node.

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

	PR bootstrap/49845
	* parser.c (cp_parser_perform_range_for_lookup): Always assign *being
	and *end before returning.

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

	PR c++/49838
	* parser.c (cp_parser_perform_range_for_lookup): Early return if
	error_operand_p (range).

2011-07-23  Jason Merrill  <jason@redhat.com>

	PR c++/49823
	* parser.c (cp_parser_qualifying_entity): Handle templates.

2011-07-22  Jason Merrill  <jason@redhat.com>

	PR c++/49793
	* typeck2.c (check_narrowing): Downgrade permerror to pedwarn.
	Make conditional on -Wnarrowing.

2011-07-22  Ville Voutilainen  <ville.voutilainen@gmail.com>

	Warn about the use of final/override in non-c++0x mode, and
	add __final for non-c++0x mode.
	* cp-tree.h (cpp0x_warn_str): Add CPP0X_OVERRIDE_CONTROLS.
	* error.c (maybe_warn_cpp0x): Adjust.
	* parser.c (cp_parser_virt_specifier_seq_opt): Use it. Add
	'__final' as a non-c++0x alternative for 'final'.

2011-07-22  Jason Merrill  <jason@redhat.com>
	    Mark Glisse  <marc.glisse@normalesup.org>

	PR c++/30112
	* decl.c (cp_finish_decl): Apply pragma redefine_extname in
	other namespaces as well.
	* name-lookup.c (c_linkage_bindings): Define.
	(lookup_extern_c_fun_in_all_ns): Rename from
	lookup_extern_c_fun_binding_in_all_ns.  Return tree.
	(pushdecl_maybe_friend_1): Adjust.  Copy DECL_ASSEMBLER_NAME.

2011-07-20  Jason Merrill  <jason@redhat.com>

	* parser.c (cp_parser_initializer_list): Handle C99 .id= and [N]=
	designated initializer syntax.
	* decl.c (check_array_designated_initializer): Add index parm.
	(maybe_deduce_size_from_array_init): Pass it.
	(reshape_init_array_1): Likewise.

	PR c++/6709 (DR 743)
	PR c++/42603 (DR 950)
	* parser.c (token_is_decltype, cp_lexer_next_token_is_decltype): New.
	(cp_parser_nested_name_specifier_opt): Allow decltype.
	(cp_parser_qualifying_entity): Likewise.
	(cp_parser_decltype): Replace source tokens with CPP_DECLTYPE.
	(cp_parser_simple_type_specifier): Handle decltype as scope.
	(cp_parser_base_specifier): Allow decltype.
	(cp_parser_base_clause): Don't crash on null base.
	* parser.h (CPP_KEYWORD, CPP_TEMPLATE_ID): Move to c-common.h.
	(CPP_NESTED_NAME_SPECIFIER, N_CP_TTYPES): Likewise.

2011-07-19  Jason Merrill  <jason@redhat.com>

	PR c++/49785
	* pt.c (coerce_template_parms): Handle non-pack after pack.

2011-07-19  Richard Guenther  <rguenther@suse.de>

	* call.c (build_special_member_call): Use fold_build_pointer_plus.
	* class.c (build_base_path): Likewise.
	(convert_to_base_statically): Likewise.
	(dfs_accumulate_vtbl_inits): Likewise.
	* cp-gimplify.c (cxx_omp_clause_apply_fn): Likewise.
	* except.c (expand_start_catch_block): Likewise.
	* init.c (expand_virtual_init): Likewise.
	(build_new_1): Likewise.
	(build_vec_delete_1): Likewise.
	(build_vec_delete): Likewise.
	* rtti.c (build_headof): Likewise.
	(tinfo_base_init): Likewise.
	* typeck.c (get_member_function_from_ptrfunc): Likewise.
	(cp_build_addr_expr_1): Likewise.
	* typeck2.c (build_m_component_ref): Likewise.

2011-07-18  Martin Jambor  <mjambor@suse.cz>

	* parser.c (cp_parser_parameter_declaration_list): Initialize
	parenthesized_p.

2011-07-16  Jason Merrill  <jason@redhat.com>

	* pt.c (tinst_level_tick, last_template_error_tick): Replace with
	last_error_tinst_level.
	(push_tinst_level, pop_tinst_level): Adjust.
	(problematic_instantiation_changed): Adjust.
	(record_last_problematic_instantiation): Adjust.
	* error.c (cp_print_error_function): Don't print
	current_function_decl if we're in a template instantiation context.
	(print_instantiation_full_context): Always print first line.

2011-07-16  Nathan Froyd  <froydnj@codesourcery.com>
	    Jason Merrill  <jason@redhat.com>

	PR c++/45329
	PR c++/48934
	* cp-tree.h (fn_type_unification): Add `bool' parameter.
	* pt.c (enum template_base_result): Define.
	(unify_success, unify_unknown): Define.
	(unify_parameter_deduction_failure): Define.
	(unify_invalid, unify_cv_qual_mismatch, unify_type_mismatch): Define.
	(unify_parameter_pack_mismatch): Define.
	(unify_parameter_pack_inconsistent): Define.
	(unify_ptrmem_cst_mismatch, unify_vla_arg): Define.
	(unify_expression_unequal, unify_inconsistency): Define.
	(unify_method_type_error, unify_arity): Likewise.
	(unify_too_many_parameters, unify_too_few_parameters): Define.
	(unify_arg_conversion, unify_no_common_base): Define.
	(unify_illformed_ptrmem_cst_expr): Define.
	(unify_substitution_failure): Define.
	(unify_inconsistent_template_template_parameters): Define.
	(unify_template_deduction_failure): Define.
	(unify_template_argument_mismatch): Define.
	(unify_overload_resolution_failure): Define.
	(comp_template_args_with_info): New function, split out from...
	(comp_template_args): ...here.	Call it.
	(deduction_tsubst_fntype): Add `complain' parameter'.  Pass it
	to tsubst.
	(unify): Add `explain_p' parameter.  Pass to all relevant calls.
	Call above status functions when appropriate.
	(resolve_overloaded_unification, try_one_overload): Likewise.
	(type_unification, type_unification_real): Likewise.
	(unify_pack_expansion): Likewise.
	(get_template_base, try_class_unification): Likewise.
	(get_bindings, more_specialized_fn): Pass false to unification
	calls.
	(get_class_bindings, do_auto_deduction): Likewise.
	(convert_nontype_argument): Likewise.
	(fn_type_unification): Likewise.  Pass tf_warning_or_error if
	explain_p.
	(get_template_base): Add `explain_p' parameter and pass it to
	try_class_unification.	Return an enum template_base_result.
	* class.c (resolve_address_of_overloaded_function): Pass false to
	fn_type_unification.
	* call.c (enum rejection_reason_code): Add new codes.
	(struct rejection_reason): Add template_unification field.
	Add template_instantiation field.
	(template_unification_rejection): Define.
	(template_unification_error_rejection): Define.
	(template_instantiation_rejection): Define.
	(invalid_copy_with_fn_template_rejection): Define.
	(add_template_candidate): Pass false to unify.
	Provide more rejection reasons when possible.
	(print_template_unification_rejection): Define.
	(print_arity_rejection): Define, split out from...
	(print_z_candidate): ...here.  Add cases for new rejection
	reasons.

2011-07-15  Jason Merrill  <jason@redhat.com>

	* Make-lang.in (check-g++-strict-gc): New.
	(cp/except.o): Depend on gt-cp-except.h
	* except.c: Include gt-cp-except.h.
	* config-lang.in (gtfiles): Add cp/except.c.
	* decl2.c (mark_used): Adjust constexpr condition, set
	function_depth around template instantiation.
	* parser.c (cp_parser_lambda_body): Set function_depth.
	* semantics.c (maybe_add_lambda_conv_op): Likewise.

	PR testsuite/49741
	* Make-lang.in (check-c++0x): Use --extra_opts instead of--tool_opts.

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

	* Make-lang.in (check-c++0x): New.

2011-07-13  Richard Sandiford  <richard.sandiford@linaro.org>

	* typeck2.c (split_nonconstant_init_1): Pass the initializer directly,
	rather than a pointer to it.  Return true if the whole of the value
	was initialized by the generated statements.  Use
	complete_ctor_at_level_p instead of count_type_elements.

2011-07-12   Diego Novillo  <dnovillo@google.com>

	* name-lookup.h (cp_binding_level): Rename from cxx_scope.
	Update all users.
	(struct cp_binding_level): Fix indentation.

2011-07-11  Jason Merrill  <jason@redhat.com>

	PR c++/49672
	* pt.c (extract_fnparm_pack): Split out from...
	(make_fnparm_pack): ...here.
	(instantiate_decl): Handle non-pack parms after a pack.
	* semantics.c (maybe_add_lambda_conv_op): Don't in a template.

	* decl2.c (decl_constant_var_p): Use decl_maybe_constant_var_p.

	PR c++/44609
	* cp-tree.h (struct tinst_level): Add errors field.
	* pt.c (neglectable_inst_p, limit_bad_template_recurson): New.
	(push_tinst_level): Don't start another decl in that case.
	(reopen_tinst_level): Adjust errors field.
	* decl2.c (cp_write_global_declarations): Don't complain about
	undefined inline if its template was defined.
	* mangle.c (mangle_decl_string): Handle failure from push_tinst_level.

2011-07-10  Jason Merrill  <jason@redhat.com>

	PR c++/49691
	* parser.c (cp_parser_late_return_type_opt): Check quals parameter
	rather than current_class_type to determine whether to set 'this'.
	(cp_parser_direct_declarator): Pass -1 to quals if member_p is false.
	(cp_parser_init_declarator): Pass down member_p.

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

	* tree.c (build_vec_init_elt): Strip TARGET_EXPR.

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

	PR c++/45437
	* typeck.c (cp_build_modify_expr): Preevaluate RHS.

	* method.c (use_thunk): Use cgraph_add_to_same_comdat_group.
	* optimize.c (maybe_clone_body): Likewise.
	* semantics.c (maybe_add_lambda_conv_op): Likewise.

	PR c++/45603
	* decl.c (expand_static_init): Don't get confused by user
	declaration of __cxa_guard_acquire.

	* typeck.c (cp_apply_type_quals_to_decl): Don't check
	COMPLETE_TYPE_P either.

	PR c++/49673
	* typeck.c (cp_apply_type_quals_to_decl): Don't check
	TYPE_NEEDS_CONSTRUCTING.

2011-07-07  Jason Merrill  <jason@redhat.com>

	PR c++/49663
	* pt.c (push_deduction_access_scope): Preserve
	processing_template_decl across push_to_top_level.
	And revert:
	* class.c (pushclass): Accept NULL argument.
	(popclass): Deal with popping null class.
	* pt.c (push_access_scope, pop_access_scope): Use them rather than
	push_to_top_level/pop_from_top_level.
	* name-lookup.c (lookup_name_real_1): Check current_class_type.

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

	PR c/49644
	* typeck.c (cp_build_binary_op): For MULT_EXPR and TRUNC_DIV_EXPR with
	one non-complex and one complex argument, call save_expr on both
	operands.

2011-07-06  Jason Merrill  <jason@redhat.com>

	PR c++/49353
	* semantics.c (expand_or_defer_fn_1): Clear DECL_EXTERNAL
	on kept inlines.

	PR c++/49568
	* method.c (make_thunk, use_thunk): Copy DECL_COMDAT.

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

	PR c++/48157
	* pt.c (tsubst_qualified_id): Preserve TEMPLATE_ID_EXPR in
	partial instantiation.

	PR c++/49598
	* semantics.c (finish_id_expression): convert_from_reference.

2011-07-05  Richard Guenther  <rguenther@suse.de>

	* decl.c (cxx_init_decl_processing): Defer building common
	tree nodes to c_common_nodes_and_builtins.

2011-07-04  Jason Merrill  <jason@redhat.com>

	DR 1207
	PR c++/49589
	* mangle.c (write_expression): Handle 'this'.
	* parser.c (cp_parser_postfix_dot_deref_expression): Allow
	incomplete *this.
	* semantics.c (potential_constant_expression_1): Check that
	DECL_CONTEXT is set on 'this'.

	* error.c (dump_template_bindings): Don't print typenames
	for a partial instantiation.
	(dump_function_decl): If we aren't printing function arguments,
	print template arguments as <args> rather than [with ...].
	(dump_expr): Don't print return type or template header.
	[BASELINK]: Use BASELINK_FUNCTIONS rather than get_first_fn.
	* pt.c (dependent_template_arg_p): Handle null arg.

	* error.c (type_to_string): Avoid redundant akas.

2011-07-01  Jonathan Wakely  <jwakely.gcc@gmail.com>

	PR c++/49605
	* init.c (build_delete): Only warn for sfk_deleting_destructor.

2011-07-01  Jakub Jelinek  <jakub@redhat.com>

	* Make-lang.in (cp/decl.o): Depend on pointer-set.h.
	(cp/class.o): Likewise.
	(cp/error.o): Likewise.
	(cp/name-lookup.o): Likewise.
	(cp/decl2.o): Likewise.  Don't depend on $(POINTER_SET_H).

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

	PR c++/48261
	* pt.c (lookup_template_function): Handle non-function.

	PR c++/48593
	* pt.c (tsubst_qualified_id): Check PTRMEM_OK_P.
	* tree.c (build_qualified_name): Set PTRMEM_OK_P.
	* semantics.c (finish_parenthesized_expr): Clear PTRMEM_OK_P on
	SCOPE_REF, too.
	* cp-tree.h (PTRMEM_OK_P): Apply to SCOPE_REF, too.
	(QUALIFIED_NAME_IS_TEMPLATE): Switch to lang flag 1.

	PR c++/48883
	PR c++/49609
	* pt.c (resolve_nondeduced_context): Call mark_used.

	PR c++/49085
	* semantics.c (finish_offsetof): Complain about incomplete type.

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

	PR c++/49387
	* rtti.c (get_tinfo_decl): Call complete_type.

	PR c++/49569
	* method.c (implicitly_declare_fn): Set DECL_PARM_LEVEL and
	DECL_PARM_INDEX on rhs parm.

	* pt.c (iterative_hash_template_arg): Use cp_tree_operand_length.

	PR c++/49355
	* tree.c (stabilize_init): Handle aggregate initialization.

	PR c++/48481
	* name-lookup.c (struct arg_lookup): Add fn_set.
	(add_function): Check it.
	(lookup_arg_dependent_1): Initialize it.

2011-06-29  Jason Merrill  <jason@redhat.com>

	PR c++/49216
	* init.c (build_new_1): Pass {} down to build_vec_init.
	(build_vec_init): Handle it.

	DR 1207
	PR c++/49003
	* cp-tree.h (struct saved_scope): Add x_current_class_ptr,
	x_current_class_ref.
	(current_class_ptr, current_class_ref): Use them.
	* decl.c (build_this_parm): Handle getting the class type.
	* parser.c (cp_parser_late_return_type_opt): Set up 'this'
	for use within the trailing return type.

	* pt.c (tsubst_decl) [VAR_DECL]: In unevaluated operand,
	don't tsubst DECL_INITIAL unless our type use auto.

	PR c++/49520
	* semantics.c (constexpr_fn_retval): Handle CLEANUP_POINT_EXPR here.
	(massage_constexpr_body): Not here.

	PR c++/49554
	* semantics.c (lambda_proxy_type): New.
	(build_capture_proxy): Use it.
	* cp-tree.h (DECLTYPE_FOR_LAMBDA_PROXY): New.
	* pt.c (tsubst) [DECLTYPE_TYPE]: Use them.

	PR c++/45923
	* class.c (explain_non_literal_class): New.
	(finalize_literal_type_property): Call it.
	* cp-tree.h: Declare it.
	* semantics.c (ensure_literal_type_for_constexpr_object): Call it.
	(is_valid_constexpr_fn): Likewise.
	(massage_constexpr_body): Split out from...
	(register_constexpr_fundef): ...here.
	(is_instantiation_of_constexpr): New.
	(expand_or_defer_fn_1): Leave DECL_SAVED_TREE alone in that case.
	(explain_invalid_constexpr_fn): New.
	(cxx_eval_call_expression): Call it.
	(potential_constant_expression_1): Likewise.  Avoid redundant errors.
	* method.c (process_subob_fn): Diagnose non-constexpr.
	(walk_field_subobs): Likewise.
	(synthesized_method_walk): Don't shortcut if we want diagnostics.
	(explain_implicit_non_constexpr): New.
	(defaulted_late_check): Use it.
	* call.c (build_cxx_call): Remember location.

	* method.c (maybe_explain_implicit_delete): Use pointer_set
	instead of htab.

	* class.c (finalize_literal_type_property): Update conditions.
	* method.c (defaulted_late_check): Set TYPE_HAS_CONSTEXPR_CTOR.

	* tree.c (build_vec_init_expr): Don't add TARGET_EXPR.
	* typeck2.c (digest_init_r): Handle VEC_INIT_EXPR.
	* semantics.c (cxx_eval_vec_init_1): Correct type.

	* init.c (build_value_init): Decide whether or not to zero-initialize
	based on user-providedness of default ctor, not any ctor.
	(build_value_init_noctor): Adjust assert.

	DR 990
	* call.c (convert_like_real) [ck_user]: Handle value-initialization.
	(build_new_method_call_1): Likewise.
	* init.c (expand_default_init): Handle direct list-initialization
	of aggregates.

2011-06-27  Jakub Jelinek  <jakub@redhat.com>

	* cp-tree.h (union lang_tree_node): Use it in chain_next expression.

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

	PR c++/49528
	* semantics.c (potential_constant_expression_1): Check
	for non-literality rather than cleanup.
	(cxx_eval_constant_expression): Likewise.

	PR c++/49528
	* semantics.c (potential_constant_expression_1): A TARGET_EXPR
	with a cleanup isn't constant.
	(cxx_eval_constant_expression): Likewise.
	* init.c (expand_default_init): Use maybe_constant_init.

2011-06-24  Jakub Jelinek  <jakub@redhat.com>

	PR c++/46400
	* cp-tree.h (union lang_tree_node): Use TYPE_NEXT_VARIANT
	instead of TYPE_CHAIN for chain_next for types.

2011-06-23  Gabriel Charette  <gchare@google.com>

	* name-lookup.h (cp_binding_level): Removed unused
	member names_size. Update all users.

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

	* typeck2.c (build_functional_cast): Strip cv-quals for value init.
	* init.c (build_zero_init_1): Not here.

	PR c++/35255
	* pt.c (resolve_overloaded_unification): Fix DR 115 handling.

2011-06-23  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/44625
	* decl2.c (build_anon_union_vars): Early return error_mark_node
	for a nested anonymous struct.

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

	PR c++/49507
	* decl2.c (mark_used): Don't call synthesize_method for
	functions defaulted outside the class.

	* optimize.c (maybe_clone_body): Set linkage flags before
	cgraph_same_body_alias.

	PR c++/49440
	* class.c (set_linkage_according_to_type): Hand off to
	determine_visibility.

	PR c++/49395
	* init.c (build_zero_init_1): Strip cv-quals from scalar types.

	PR c++/36435
	* pt.c (most_specialized_instantiation): Do check return types.

2011-06-22  Jason Merrill  <jason@redhat.com>

	PR c++/49260
	* call.c (build_call_a): Set cp_function_chain->can_throw here.
	(build_cxx_call): Not here.

2011-06-21  Jason Merrill  <jason@redhat.com>

	PR c++/49172
	* decl.c (cp_finish_decl): Adjust init_const_expr_p for refs.
	(grokdeclarator): constexpr doesn't apply const for refs.
	* parser.c (cp_parser_initializer_clause): Don't call
	maybe_constant_value here.
	* call.c (initialize_reference): Handle constexpr.

	PR c++/49482
	* semantics.c (maybe_add_lambda_conv_op): Call mark_exp_read for
	static fn parameters.

	* call.c (add_builtin_candidates): Use cv_unqualified rather than
	TYPE_MAIN_VARIANT.
	* pt.c (tsubst_arg_types): Likewise.
	* except.c (build_throw): Use cv_unqualified.

	PR c++/49418
	* call.c (cxx_type_promotes_to): Don't strip cv-quals.
	* semantics.c (lambda_return_type): Strip them here.

2011-06-21  Andrew MacLeod  <amacleod@redhat.com>

	* semantics.c: Add sync_ or SYNC__ to builtin names.

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

	PR c++/49216
	* init.c (build_vec_init): Don't try to use a CONSTRUCTOR when
	base is a pointer.
	* typeck2.c (process_init_constructor_array): Use {} for classes,
	too.
	* call.c (convert_like_real): Handle substitution failure.

	PR c++/48138
	* pt.c (canonicalize_type_argument): New.
	(convert_template_argument, unify): Use it.

	PR c++/47080
	* call.c (rejection_reason_code): Add rr_explicit_conversion.
	(print_z_candidate): Handle it.
	(explicit_conversion_rejection): New.
	(build_user_type_conversion_1): Reject an explicit conversion
	function that requires more than a qualification conversion.

	PR c++/47635
	* decl.c (grokdeclarator): Don't set ctype to an ENUMERAL_TYPE.

	PR c++/48138
	* tree.c (strip_typedefs): Use build_aligned_type.

	PR c++/49205
	* call.c (sufficient_parms_p): Allow parameter packs too.

	PR c++/43321
	* semantics.c (describable_type): Remove.
	* cp-tree.h: Likewise.
	* decl.c (cp_finish_decl): Don't call it.
	* init.c (build_new): Likewise.
	* parser.c (cp_parser_omp_for_loop): Likewise.
	* pt.c (tsubst_decl): Likewise.
	(do_auto_deduction): If we fail in a template, try again
	at instantiation time.

	PR c++/43831
	* parser.c (cp_parser_lambda_introducer): Complain about redundant
	captures.
	* semantics.c (add_capture): Likewise.
	(register_capture_members): Clear IDENTIFIER_MARKED.

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

	PR c++/49458
	* call.c (convert_class_to_reference_1): Allow binding function
	lvalue to rvalue reference.

	PR c++/43912
	Generate proxy VAR_DECLs for better lambda debug info.
	* cp-tree.h (FUNCTION_NEEDS_BODY_BLOCK): Add lambda operator().
	(LAMBDA_EXPR_PENDING_PROXIES): New.
	(struct tree_lambda_expr): Add pending_proxies.
	* name-lookup.c (pushdecl_maybe_friend_1): Handle capture shadowing.
	(qualify_lookup): Use is_lambda_ignored_entity.
	* parser.c (cp_parser_lambda_expression): Don't adjust field names.
	Call insert_pending_capture_proxies.
	(cp_parser_lambda_introducer): Use this_identifier.
	(cp_parser_lambda_declarator_opt): Call the object parameter
	of the op() "__closure" instead of "this".
	(cp_parser_lambda_body): Call build_capture_proxy.
	* semantics.c (build_capture_proxy, is_lambda_ignored_entity): New.
	(insert_pending_capture_proxies, insert_capture_proxy): New.
	(is_normal_capture_proxy, is_capture_proxy): New.
	(add_capture): Add __ to field names here, return capture proxy.
	(add_default_capture): Use this_identifier, adjust to expect
	add_capture to return a capture proxy.
	(outer_lambda_capture_p, thisify_lambda_field): Remove.
	(finish_id_expression, lambda_expr_this_capture): Adjust.
	(build_lambda_expr): Initialize LAMBDA_EXPR_PENDING_PROXIES.
	* pt.c (tsubst_copy_and_build): Check that LAMBDA_EXPR_PENDING_PROXIES
	is null.

	* name-lookup.c (pushdecl_maybe_friend_1): Do check for shadowing
	of artificial locals.

	* parser.c (cp_parser_lambda_expression): Clear
	LAMBDA_EXPR_THIS_CAPTURE after parsing.
	* pt.c (tsubst_copy_and_build): Make sure it isn't set.

	* cp-tree.h (struct tree_lambda_expr): Change common to typed.
	Move non-pointers to end of struct.

	* pt.c (tsubst_decl): Handle DECL_VALUE_EXPR on reference.
	* decl.c (check_initializer): Handle DECL_VALUE_EXPR_P.

	* semantics.c (finish_non_static_data_member): Preserve dereference
	in template.

2011-06-16  Jason Merrill  <jason@redhat.com>

	PR c++/44160
	* parser.c (cp_parser_lambda_body): Share code between
	simple and complex cases instead of using cp_parser_function_body.

	PR c++/45378
	* decl.c (check_initializer): Check narrowing.

	PR c++/49229
	* pt.c (tsubst_decl) [FUNCTION_DECL]: Handle substitution failure.

	PR c++/49251
	* semantics.c (finish_id_expression): Mark even dependent
	variables as used.

	PR c++/49420
	* error.c (dump_template_argument): Don't try to omit default
	template args from an argument pack.

2011-06-15  H.J. Lu  <hongjiu.lu@intel.com>

	PR c++/49412
	* decl.c (get_dso_handle_node): Mark __dso_handle hidden if
	assembler supports hidden visibility.

2011-06-14  Jason Merrill  <jason@redhat.com>

	PR c++/49107
	* cp-tree.h (DEFERRED_NOEXCEPT_SPEC_P): Handle overload.
	* method.c (defaulted_late_check): Only maybe_instantiate_noexcept
	if the declaration had an exception-specifier.
	(process_subob_fn): Don't maybe_instantiate_noexcept.
	* pt.c (maybe_instantiate_noexcept): Handle overload.
	* typeck2.c (nothrow_spec_p_uninst): New.
	(merge_exception_specifiers): Add 'fn' parm.  Build up overload.
	* typeck.c (merge_types): Adjust.

	* pt.c (deduction_tsubst_fntype): Don't save input_location.
	(maybe_instantiate_noexcept): Likewise.

2011-06-14  Joseph Myers  <joseph@codesourcery.com>

	* Make-lang.in (cp/method.o): Update dependencies.
	* method.c: Include common/common-target.h.
	(use_thunk): Use targetm_common.have_named_sections.

2011-06-14  Steve Ellcey  <sje@cup.hp.com>

	* decl.c (cxx_init_decl_processing): Use ptr_mode instead of Pmode.

2011-06-14  Jason Merrill  <jason@redhat.com>

	* error.c (type_to_string): Print typedef-stripped version too.

	PR c++/49117
	* call.c (perform_implicit_conversion_flags): Print source type as
	well as expression.

	PR c++/49389
	* typeck2.c (build_m_component_ref): Preserve rvalueness.

	PR c++/49369
	* class.c (build_base_path): Fix cv-quals in unevaluated context.

	PR c++/49290
	* semantics.c (cxx_fold_indirect_ref): Local, more permissive copy
	of fold_indirect_ref_1.
	(cxx_eval_indirect_ref): Use it.

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

	* decl2.c (cp_write_global_declarations): Process aliases; look trhough
	same body aliases.

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

	PR c++/41769
	* decl.c (grokdeclarator): Reject operator names in parameters.

2011-06-10  Jan Hubicka  <jh@suse.cz>

	* decl2.c (clear_decl_external): New functoin.
	(cp_write_global_declarations): Use it.

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

	* cp-tree.h (error_operand_p): Remove.

2011-06-09  David Krauss  <potswa@mac.com>

	PR c++/49118
	* typeck2.c (build_x_arrow): Push fake template context
	to produce diagnostic on acyclic endless operator-> drill-down.
	* call.c (build_new_op): Change Boolean overload status
	value to a pointer to the overload function.
	* cp-tree.h: Likewise.
	* typeck.c: Likewise.
	* parser.c: Likewise.
	* decl2.c: Likewise.
	* pt.c: Likewise.

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

	* semantics.c (maybe_constant_value): Handle overflowed input.
	(non_const_var_error): Handle non-constant DECL_INITIAL.

	* pt.c (build_non_dependent_expr): Use fold_non_dependent_expr_sfinae.

	* parser.c (cp_parser_constant_expression): Just return the
	non-constant expression.

	* semantics.c (finish_compound_literal): Set TREE_HAS_CONSTRUCTOR.

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

	PR c++/29003
	* decl.c (grokdeclarator): Reject operator names in typedefs.

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

	PR c++/49107
	* cp-tree.def (DEFERRED_NOEXCEPT): New.
	* cp-tree.h (struct tree_deferred_noexcept): New.
	(DEFERRED_NOEXCEPT_PATTERN, DEFERRED_NOEXCEPT_ARGS): New.
	(DEFERRED_NOEXCEPT_SPEC_P): New.
	(enum cp_tree_node_structure_enum): Add TS_CP_DEFERRED_NOEXCEPT.
	(union lang_tree_node): Add tree_deferred_noexcept.
	(maybe_instantiate_noexcept): Declare.
	* cp-objcp-common.c (cp_tree_size): Handle DEFERRED_NOEXCEPT.
	* error.c (dump_exception_spec): Likewise.
	* cxx-pretty-print.c (pp_cxx_exception_specification): Likewise.
	* ptree.c (cxx_print_xnode): Likewise.
	* tree.c (cp_tree_equal): Likewise.
	* decl.c (cp_tree_node_structure): Likewise.
	(duplicate_decls): Call maybe_instantiate_noexcept.
	* except.c (build_noexcept_spec): Handle DEFERRED_NOEXCEPT.
	(nothrow_spec_p, type_noexcept_p, type_throw_all_p): Check
	DEFERRED_NOEXCEPT_SPEC_P.
	* typeck2.c (merge_exception_specifiers): Likewise.
	* decl2.c (mark_used): Call maybe_instantiate_noexcept.
	* method.c (process_subob_fn, defaulted_late_check): Likewise.
	* pt.c (tsubst_exception_specification): Add defer_ok parm.
	Build DEFERRED_NOEXCEPT.
	(maybe_instantiate_noexcept): New.
	(tsubst, regenerate_decl_from_template, instantiate_decl): Adjust.
	* search.c (check_final_overrider): Call maybe_instantiate_noexcept.

	* semantics.c (potential_constant_expression_1): Handle destructor
	call.

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

	* cp-tree.h (struct tinst_level): Add chain_next GTY
	markup.

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

	PR c++/49322
	* pt.c (deduction_tsubst_fntype): Don't free the tinst entry
	if a pending_template entry is pointing at it.

2011-06-07  Jason Merrill  <jason@redhat.com>

	PR c++/48969
	PR c++/44175
	* error.c (subst_to_string): New.
	(cp_printer): Use it for 'S'.
	(print_instantiation_partial_context_line): Handle subst context.
	* pt.c (push_tinst_level): Handle subst context.
	(deduction_tsubst_fntype): Don't track specific substitutions.
	Use push_tinst_level.

	* pt.c (deduction_tsubst_fntype): Use push_deduction_access_scope.
	(fn_type_unification): Don't call push_deduction_access_scope here.

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

	PR c++/48780
	* typeck.c (perform_integral_promotions): Don't promote scoped enums.
	* call.c (convert_arg_to_ellipsis): Promote them here in old ABI.

2011-06-06  Nicola Pero  <nicola.pero@meta-innovation.com>,

	PR obj-c++/48275
	* parser.c (cp_parser_objc_at_property_declaration): Allow setter
	and getter names to use all the allowed method names.

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

	PR c++/49298
	* semantics.c (potential_constant_expression_1): Handle FIELD_DECL.

	PR objc++/49221
	* decl.c (cp_finish_decl): Check DECL_FUNCTION_SCOPE_P rather than
	at_function_scope_p.

	PR c++/49134
	* tree.c (build_target_expr): Deal with ARM ABI tweaks.

2011-06-04  Jonathan Wakely  <jwakely.gcc@gmail.com>

	* init.c (build_delete): Warn when deleting type with non-virtual
	destructor.

2011-06-03  Jakub Jelinek  <jakub@redhat.com>

	PR c++/49276
	* mangle.c (write_nested_name): Use CP_DECL_CONTEXT instead of
	DECL_CONTEXT.

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

	* pt.c (build_non_dependent_expr): Remove special handling of
	REFERENCE_REF_P.

	PR c++/44175
	* pt.c (template_args_equal): Handle one arg being NULL_TREE.
	(deduction_tsubst_fntype): Handle excessive non-infinite recursion.

	PR c++/49253
	* typeck2.c (build_x_arrow): Don't use build_min_nt.

2010-05-31  Fabien Chêne  <fabien@gcc.gnu.org>

	PR c++/48010
	* name-lookup.c (supplement_binding_1): If the old binding was a
	type name, also check that the DECL actually refers to the same
	type or is not a type.

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

	PR c++/44870
	* tree.c (lvalue_kind): Recurse on NON_DEPENDENT_EXPR.  Handle
	ARROW_EXPR, TYPEID_EXPR, and arbitrary class-valued expressions.
	(build_min_non_dep): Preserve reference refs.
	(build_min_non_dep_call_vec): Likewise

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

	PR c++/49223
	* semantics.c (finish_omp_clauses): Call require_complete_type
	even for copyin/copyprivate clauses.  Only call
	cxx_omp_create_clause_info if inner_type is COMPLETE_TYPE_P.

2011-05-28  Jason Merrill  <jason@redhat.com>

	PR c++/46124
	* parser.c (cp_parser_lambda_expression): Improve error recovery.
	(cp_parser_lambda_declarator_opt): Likewise.  Return bool.

2011-05-27  Jason Merrill  <jason@redhat.com>

	PR c++/47277
	* parser.c (cp_parser_pseudo_destructor_name): Commit to parse
	after we see the ~.

	* mangle.c (mangle_decl_string): Make sure we don't try to mangle
	templates.

	PR c++/47049
	* semantics.c (maybe_add_lambda_conv_op): Fix COMDAT sharing.
	* decl.c (start_preparsed_function): Don't call comdat_linkage for
	a template.

	PR c++/47132
	* mangle.c (write_expression): Handle MODOP_EXPR.

	PR c++/47277
	* parser.c (cp_parser_unqualified_id): Don't check
	constructor_name_p for enums.

	PR c++/47687
	* pt.c (dependent_type_p_r): Avoid infinite recursion.

	PR c++/48284
	* error.c (dump_expr) [COMPONENT_REF]: Use pp_cxx_dot
	with INDIRECT_REF of REFERENCE_TYPE.

	PR c++/49181
	* pt.c (get_mostly_instantiated_function_type): Use push_access_scope.

2011-05-27  Nathan Froyd  <froydnj@codesourcery.com>

	* cp-tree.h (building_stmt_tree): Delete.
	* decl.c (save_function_data): Tweak initializer for x_cur_stmt_list.
	(build_aggr_init_full_exprs): Call building_stmt_list_p
	instead of building_stmt_tree.
	(initialize_local_var): Likewise.
	(finish_function): Likewise.
	* decl2.c (finish_anon_union): Likewise.
	* init.c (begin_init_stmts): Likewise.
	(finish_init_stmts): Likewise.
	(expand_aggr_init_1): Likewise.
	* name-lookup.c (do_local_using_decl): Likewise.
	(do_namespace_alias): Likewise.
	(do_using_directive): Likewise.
	(cp_emit_debug_info_for_using): Likewise.
	* semantics.c (add_stmt): Assert that stmt_list_stack is non-empty.

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

	PR c++/42056
	* typeck2.c (build_functional_cast): Complain early for invalid uses
	of 'auto' and set type to error_mark_node.

2011-05-26  Jason Merrill  <jason@redhat.com>

	PR c++/47721
	* parser.c (cp_parser_member_declaration): Allow friend T.
	* friend.c (make_friend_class): Ignore non-classes.
	* pt.c (instantiate_class_template_1): Handle TEMPLATE_TYPE_PARM.

	DR 1004
	* pt.c (convert_template_argument): Don't complain about using
	injected-class-name as template template argument.

	PR c++/47956
	* decl.c (check_static_variable_definition): Now static.
	(cp_finish_decl): Call it here.
	(grokdeclarator): Not here.
	* pt.c (instantiate_class_template_1): Or here.
	* cp-tree.h: Don't declare it.

2011-05-26  Janis Johnson  <janis187@us.ibm.com>
	    Nathan Froyd  <froydnj@codesourcery.com>

	PR c++/2288
	PR c++/18770
	* name-lookup.h (enum scope_kind): Add sk_cond.
	* name-lookup.c (pushdecl_maybe_friend): Get scope of shadowed local.
	Detect and report error for redeclaration from for-init or if
	or switch condition.
	(begin_scope): Handle sk_cond.
	* semantics.c (begin_if_stmt): Use sk_cond.
	(begin switch_stmt): Ditto.

2011-05-26  Jason Merrill  <jason@redhat.com>

	PR c++/48211
	* name-lookup.h (cp_class_binding): Make base a pointer.
	* name-lookup.c (new_class_binding): Adjust.
	(poplevel_class): Adjust.

	PR c++/48424
	* decl.c (grokparms): Function parameter packs don't need to
	go at the end.
	* pt.c (type_unification_real): But they aren't deduced otherwise.

2011-05-25  Jason Merrill  <jason@redhat.com>

	PR c++/48536
	* decl.c (build_enumerator): If incremented enumerator won't fit in
	previous integral type, find one it will fit in.

	PR c++/48599
	* decl.c (create_array_type_for_decl): Complain about array of auto.

	PR c++/44994
	PR c++/49156
	* error.c (dump_template_bindings): Set processing_template_decl
	for a partial instantiation.

	PR c++/45401
	* decl.c (grokdeclarator): Don't change type when adding rvalue ref
	to another reference type.

	PR c++/44311
	* decl.c (case_conversion): New.
	(finish_case_label): Use it.

	* ptree.c (cxx_print_xnode): Handle ARGUMENT_PACK_SELECT.

	PR c++/45698
	* pt.c (dependent_template_arg_p): See through ARGUMENT_PACK_SELECT.

	PR c++/46005
	* decl.c (grokdeclarator): Complain about auto typedef.

	PR c++/46245
	* decl.c (grokdeclarator): Complain later for auto parameter.
	* pt.c (splice_late_return_type): Handle use in a template
	type-parameter.

	PR c++/46696
	* typeck.c (cp_build_modify_expr): Check DECL_DEFAULTED_FN.

	PR c++/47184
	* parser.c (cp_parser_parameter_declaration): Recognize
	list-initialization.
	(cp_parser_direct_declarator): Check for the closing
	paren before parsing definitely.

	PR c++/48935
	* parser.c (cp_parser_constructor_declarator_p): Don't check
	constructor_name_p for enums.
	(cp_parser_diagnose_invalid_type_name): Correct error message.

	PR c++/45418
	* init.c (perform_member_init): Handle list-initialization
	of array of non-trivial class type.

	PR c++/45080
	* pt.c (instantiate_class_template_1): Call maybe_add_lambda_conv_op.
	* semantics.c (lambda_function): Check COMPLETE_OR_OPEN_TYPE_P.

	PR c++/48292
	* pt.c (tsubst_decl) [PARM_DECL]: Handle partial instantiation of
	function parameter pack.
	(tsubst_pack_expansion): Likewise.

	* cp-objcp-common.c (cp_common_init_ts): TYPE_ARGUMENT_PACK has
	TS_COMMON.

2011-05-25  Jakub Jelinek  <jakub@redhat.com>

	* cp-objcp-common.c (cp_common_init_ts): Mark CTOR_INITIALIZER
	as TS_TYPED.

	PR c++/49136
	* semantics.c (cxx_eval_bit_field_ref): Handle the
	case when BIT_FIELD_REF doesn't cover only a single field.

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

	PR c++/49042
	* pt.c (get_mostly_instantiated_function_type): Use
	push_deferring_access_checks rather than set flag_access_control.

2011-05-24  Nicola Pero  <nicola.pero@meta-innovation.com>,

	* parser.c (cp_parser_objc_class_ivars): Deal gracefully with a
	syntax error in declaring an ObjC instance variable.

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

	PR c++/48884
	* class.c (pushclass): Accept NULL argument.
	(popclass): Deal with popping null class.
	* pt.c (push_access_scope, pop_access_scope): Use them rather than
	push_to_top_level/pop_from_top_level.
	(push_deduction_access_scope, pop_defarg_context): New.
	(fn_type_unification): Use them.
	* name-lookup.c (lookup_name_real_1): Check current_class_type.

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

	* decl.c (grokdeclarator): Use current_class_name.

2011-05-24  Joseph Myers  <joseph@codesourcery.com>

	* Make-lang.in (GXX_OBJS): Remove prefix.o.
	(g++$(exeext)): Use libcommon-target.a.
	(CXX_C_OBJS): Remove prefix.o.

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

	* pt.c (tsubst_copy_and_build): Use current_class_name.

	PR c++/49102
	* call.c (convert_arg_to_ellipsis): Call force_rvalue.

	PR c++/49105
	* typeck.c (cp_build_c_cast): Don't strip cv-quals when
	converting to reference.
	(build_static_cast_1): Update for glvalues.

	PR c++/49105
	* typeck.c (build_const_cast_1): Handle rvalue references.

	PR c++/47263
	* decl.c (use_eh_spec_block): Do use an EH spec block for a
	lambda op().

	PR c++/49058
	* call.c (splice_viable): Be strict in templates.

	PR c++/47336
	* error.c (dump_template_bindings): Suppress access control.

	PR c++/47544
	* pt.c (instantiate_decl): Handle =default.

	PR c++/48617
	* pt.c (invalid_nontype_parm_type_p): Allow DECLTYPE_TYPE.

2011-05-23  Nathan Froyd  <froydnj@codesourcery.com>

	* call.c (build_over_call): Tweak call to check_function_arguments.
	* typeck.c (cp_build_function_call_vec): Likewise.

2011-05-23  Jonathan Wakely  <jwakely.gcc@gmail.com>

	PR c++/18016
	* init.c (perform_member_init): Check for self-initialization.

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

	PR c++/48647
	* typeck.c (composite_pointer_type_r): Return error_mark_node
	on error in SFINAE context.

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

	PR c++/48945
	* decl.c (grokdeclarator): Don't add set const function-cv-qual
	for constexpr fns to memfn_quals, just add it to the type.
	(revert_static_member_fn): Don't complain about quals.
	(check_static_quals): New.
	(grokfndecl): Call it.
	(start_preparsed_function): Don't call revert_static_member_fn.

	PR c++/48945
	* decl.c (revert_static_member_fn): Ignore const on constexpr fn.

	PR c++/48780
	* cvt.c (type_promotes_to): Don't promote scoped enums.

	PR c++/49066
	* decl.c (duplicate_decls): Preserve DECL_DELETED_FN.

	PR c++/48873
	* tree.c (stabilize_expr): Fix typo.

	DR 1073
	PR c++/49082
	* typeck.c (comp_except_specs): noexcept(false) is not compatible
	with throw(type-list).
	* typeck2.c (merge_exception_specifiers): noexcept(false)
	beats any more limited specification.

	PR c++/24163
	PR c++/29131
	* pt.c (tsubst_copy_and_build) [CALL_EXPR]: Avoid repeating
	unqualified lookup.
	* semantics.c (perform_koenig_lookup): Add complain parm.
	* cp-tree.h: Adjust.
	* parser.c (cp_parser_postfix_expression): Adjust.
	(cp_parser_perform_range_for_lookup): Adjust.

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

	* semantics.c (finish_call_expr): SET_EXPR_LOCATION.

2011-05-20  Joseph Myers  <joseph@codesourcery.com>

	* Make-lang.in (GXX_OBJS): Remove intl.o and version.o.

2011-05-19  Jakub Jelinek  <jakub@redhat.com>

	PR c++/49043
	* decl.c (check_omp_return): Stop searching on sk_function_parms.

	PR c++/48869
	* method.c (get_dtor, get_copy_ctor): Add COMPLAIN argument,
	pass it down to locate_fn_flags.
	* cp-tree.h (get_dtor, get_copy_ctor): Adjust prototypes.
	* semantics.c (cxx_omp_create_clause_info): Adjust callers.
	* cp-gimplify.c: Include splay-tree.h.
	(splay_tree_compare_decl_uid, omp_var_to_track,
	omp_cxx_notice_variable): New functions.
	(struct cp_genericize_omp_taskreg): New type.
	(struct cp_genericize_data): Add omp_ctx field.
	(cp_genericize_r): Attempt to determine implicitly determined
	firstprivate class type variables.
	(cp_genericize): Clear omp_ctx.
	* Make-lang.in (cp/cp-gimplify.o): Depend on $(SPLAY_TREE_H).

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

	PR c++/48948
	PR c++/49015
	* class.c (finalize_literal_type_property): Do check
	for constexpr member functions of non-literal class.
	(finish_struct): Don't call check_deferred_constexpr_decls.
	* cp-tree.h: Don't declare it.
	(DECL_DEFERRED_CONSTEXPR_CHECK): Remove.
	* decl.c (grok_special_member_properties): Don't check it
	(grokfnedcl): Don't call validate_constexpr_fundecl.
	(start_preparsed_function): Do call it.
	* pt.c (tsubst_decl): Don't call it.
	(instantiate_class_template_1): Don't call
	check_deferred_constexpr_decls.
	* semantics.c (literal_type_p): Check for any incompleteness.
	(ensure_literal_type_for_constexpr_object): Likewise.
	(is_valid_constexpr_fn): Revert deferral changes.
	(validate_constexpr_fundecl): Likewise.
	(register_constexpr_fundef): Likewise.
	(check_deferred_constexpr_decls): Remove.

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

	PR c++/48969
	* pt.c (deduction_tsubst_fntype): Use a VEC initially.

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

	* cxx-pretty-print.c: Update comment.
	* semantics.c (trait_expr_value, finish_trait_expr):
	Reorder the cases.
	* parser.c (cp_parser_primary_expression): Likewise.

2011-05-15  Jonathan Wakely  <jwakely.gcc@gmail.com>

	PR c++/48994
	* parser.c (cp_parser_perform_range_for_lookup): Call complete_type.

2011-05-13  Ville Voutilainen  <ville.voutilainen@gmail.com>

	Implement final on class.
	* class.c (check_bases): Diagnose derivation from a final class.
	* cp-tree.h (lang_type_class): Add is_final and adjust dummy.
	(CLASSTYPE_FINAL): New.
	* parser.c (cp_parser_class_head): Parse class-virt-specifier, set
	CLASSTYPE_FINAL.
	* pt.c (instantiate_class_template_1): Copy CLASSTYPE_FINAL.

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

	PR c++/48969
	* pt.c (deduction_tsubst_fntype): New.
	(fn_type_unification): Use it.
	(init_template_processing): Initialize hash table.
	(print_template_statistics): Print hash table stats.

	* call.c (build_op_call): Use timevar_cond_start/stop.
	(build_user_type_conversion): Likewise.

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

	* cp-tree.h (DECL_DEFERRED_CONSTEXPR_CHECK): New.
	* semantics.c (validate_constexpr_fundecl): Set it.
	(check_deferred_constexpr_decls): Clear it.
	(register_constexpr_fundef): Make sure it isn't set.
	* decl.c (grok_special_member_properties): Check it.

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

	PR c++/48948
	* semantics.c (validate_constexpr_fundecl): Defer checking if
	an argument type is being defined.
	(is_valid_constexpr_fn): Add defer_ok parm.
	(cxx_eval_call_expression): Adjust.
	(check_deferred_constexpr_decls): New.
	(literal_type_p): Make sure type isn't being defined.
	(ensure_literal_type_for_constexpr_object): Handle type being defined.
	* cp-tree.h: Declare check_deferred_constexpr_decls.
	* decl.c (grokfndecl): Call validate_constexpr_fundecl here.
	(start_preparsed_function, cp_finish_decl): Not here.
	* class.c (finalize_literal_type_property): Don't call
	validate_constexpr_fundecl.
	(finish_struct): Call check_deferred_constexpr_decls.
	* pt.c (tsubst_decl): Call validate_constexpr_fundecl.
	(instantiate_class_template): Call check_deferred_constexpr_decls.

	* semantics.c (validate_constexpr_fundecl): Check DECL_TEMPLATE_INFO
	rather than DECL_TEMPLATE_INSTANTIATION.
	(cxx_eval_call_expression): Likewise.

	* semantics.c (register_constexpr_fundef): Add to hash table here.
	(validate_constexpr_fundecl): Not here.

	* decl.c (grokdeclarator): Only set DECL_DECLARED_CONSTEXPR_P once.

	* pt.c (build_non_dependent_expr): Don't check null_ptr_cst_p,
	do call maybe_constant_value in C++0x mode.
	* semantics.c (cxx_eval_constant_expression): Handle TEMPLATE_DECL.

	PR c++/48745
	* pt.c (value_dependent_expr_p): Handle CONSTRUCTOR.

2011-05-11  Nathan Froyd  <froydnj@codesourcery.com>

	* cp-tree.h (TYPENAME_TYPE_FULLNAME, TYPEOF_TYPE_EXPR): Use
	TYPE_VALUES_RAW.
	(UNDERLYING_TYPE_TYPE, DECLTYPE_TYPE_EXPR): Likewise.
	(DECLTYPE_TYPE_ID_EXPR_OR_MEMBER_ACCESS_P): Likewise.
	(TEMPLATE_TYPE_PARM_INDEX): Likewise.

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

	PR c++/48930
	* class.c (type_build_ctor_call): New.
	* cp-tree.h: Declare it.
	* decl.c (check_initializer): Use it instead of
	TYPE_NEEDS_CONSTRUCTING.
	* init.c (build_value_init, build_value_init_noctor): Likewise.
	(perform_member_init, expand_aggr_init_1, build_new_1): Likewise.
	(build_vec_init): Likewise.
	* typeck2.c (process_init_constructor_array): Likewise.
	(process_init_constructor_record): Likewise.

	PR c++/48736
	* pt.c (tsubst_copy_and_build): Handle substitution of a pack
	expansion producing another expansion.

2011-05-10  Ville Voutilainen  <ville.voutilainen@gmail.com>

	Fixes for override/final.
	* class.c (check_for_override): Diagnose final on a nonvirtual
	member function, diagnose override for a virtual with no matching
	override. Don't fiddle around with DECL_VINDEX.

2011-05-10  Nathan Froyd  <froydnj@codesourcery.com>

	* cp-tree.def (EXPR_PACK_EXPANSION): Add an operand.
	* cp-objcp-common.c (cp_common_init_ts): Mark it as TS_TYPED.
	* cp-tree.h (PACK_EXPANSION_PARAMETER_PACKS): Use the new
	operand of EXPR_PACK_EXPANSION.
	(cp_tree_operand_length): Declare.
	* tree.c (cp_tree_operand_length): Define.
	(cp_tree_equal): Call it.
	* pt.c (value_dependent_expr_P): Likewise.
	* mangle.c (write_expression): Likewise.

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

	PR c++/48737
	PR c++/48744
	* decl.c (reshape_init): Take a complain parameter and do
	not call error if tf_error is not set.
	(check_initializer, reshape_init_r, reshape_init_array,
	reshape_init_array_1, reshape_init_vector, reshape_init_class):
	Adjust.
	* typeck2.c (digest_init_r): Take a complain parameter and
	pass it to convert_for_initialization.
	(digest_init, digest_init_flags, process_init_constructor_array,
	process_init_constructor_record, process_init_constructor_union,
	process_init_constructor, digest_init_r): Adjust.
	* init.c (expand_default_init, build_new_1): Likewise.
	* typeck.c (cp_build_modify_expr): Likewise.
	* decl2.c (grokfield): Likewise.
	* call.c (convert_like_real, convert_default_arg): Likewise.
	* semantics.c (finish_compound_literal): Pass complain to
	reshape_init and digest_init.
	* cp-tree.h: Adjust declarations.

2011-05-07  Fabien Chêne  <fabien@gcc.gnu.org>

	PR c++/48859
	* init.c (diagnose_uninitialized_cst_or_ref_member_1): stop the
	recursion if there is user defined constructor.

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

	PR c++/34772
	* decl.c (initialize_local_var): Use DECL_INITIAL for simple
	initialization.

2011-05-08  Ville Voutilainen  <ville.voutilainen@gmail.com>

	Implement final/override for member functions.
	* class.c (check_for_override): Check for DECL_OVERRIDE_P.
	* cp-tree.h (DECL_OVERRIDE_P, DECL_FINAL_P): New.
	(cp_virt_specifiers, enum virt_specifier): New.
	* decl.c (set_virt_specifiers): New.
	(grokdeclarator): Use them. Diagnose virt-specifiers on non-fields.
	* parser.c (make_call_declarator): add virt-specifiers parameter.
	(cp_parser_lambda_declarator_opt): Adjust.
	(cp_parser_direct_declarator): Likewise.
	(cp_parser_virt_specifier_seq_opt): New.
	* search.c (check_final_overrider): Diagnose attempts to override
	a final member function.

2011-05-09  Dodji Seketeli  <dodji@redhat.com>

	PR c++/48574
	* class.c (fixed_type_or_null): Use type_dependent_p_push to test
	if the instance has a dependent initializer.

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

	PR c++/48816
	* cxx-pretty-print.c (pp_cxx_template_declaration): Remove
	effectively unused variable.

2011-05-07  Eric Botcazou  <ebotcazou@adacore.com>

	* name-lookup.h (global_bindings_p): Adjust prototype.
	* name-lookup.c (global_bindings_p): Return bool.

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

	* decl.c (stabilize_save_expr_r): Set *walk_subtrees as
	appropriate.

	PR c++/48909
	* semantics.c (cxx_eval_conditional_expression): Check
	integer_zerop instead.
	(potential_constant_expression_1): Likewise.

	PR c++/48911
	* semantics.c (cxx_eval_array_reference): Handle implicit
	initializers.

2011-05-06  Nathan Froyd  <froydnj@codesourcery.com>

	* cp-tree.h (type_of_this_parm, class_of_this_parm): New functions.
	* call.c (standard_conversion): Call class_of_this_parm.
	* cxx-pretty-print.c (pp_cxx_implicit_parameter_type): Likewise.
	(pp_cxx_direct_abstract_declarator): Likewise.
	* decl2.c (change_return_type): Likewise.
	(cp_reconstruct_complex_type): Likewise.
	* error.c (dump_type_suffix, dump_function_decl): Likewise.
	* mangle.c (write_function_type): Likewise.
	* pt.c (unify): Likewise.
	* typeck.c (merge_types, type_memfn_quals): Likewise.
	* decl.c (build_this_parm): Call type_of_this_parm.

2011-05-06  Dodji Seketeli  <dodji@redhat.com>

	PR c++/48838
	* cp-tree.h (non_static_member_function_p): Declare new function.
	* tree.c (non_static_member_function_p): Define it.
	* semantics.c (finish_call_expr): Use it.

2011-05-05  Nathan Froyd  <froydnj@codesourcery.com>

	* decl.c (finish_case_label): Omit the loc argument to
	build_case_label.

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

	* cp-tree.h (REFERENCE_REF_P): Just check the type.
	* cvt.c (convert_from_reference): Adjust.
	* pt.c (build_non_dependent_expr): Adjust.
	* semantics.c (finish_offsetof): Adjust.
	* tree.c (lvalue_kind): Use it.

	PR c++/48873
	* tree.c (stabilize_expr): Don't make gratuitous copies of classes.

2011-05-05  Eric Botcazou  <ebotcazou@adacore.com>

	* decl.c (start_preparsed_function): Do not set
	dont_save_pending_sizes_p.

2011-05-05  Joseph Myers  <joseph@codesourcery.com>

	* parser.c (cp_parser_objc_method_definition_list): Update call to
	objc_start_method_definition.

2011-05-04  Jason Merrill  <jason@redhat.com>

	PR c++/48749
	* class.c (resolves_to_fixed_type_p): Don't look closely
	in templates.

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

	PR c++/28501
	* call.c (add_builtin_candidate): Handle REALPART_EXPR and
	IMAGPART_EXPR.

2011-05-02  Lawrence Crowl  <crowl@google.com>

	* decl.c: (push_local_name): Change TV_NAME_LOOKUP to start/stop.
	(poplevel): Refactor POP_TIMEVAR_AND_RETURN to plain code.
	Change TV_NAME_LOOKUP to start/stop.
	(define_label): Refactor timevar calls out to a wrapper function.
	Change TV_NAME_LOOKUP to start/stop.
	(xref_tag): Likewise.
	(lookup_label): Refactor timevar calls out to a wrapper function.
	Change TV_NAME_LOOKUP to start_cond/stop_cond.

	* pt.c: (instantiate_class_template): Add a wrapper to push/pop new
	TV_TEMPLATE_INST.
	(instantiate_template): Add a wrapper to push/pop new TV_TEMPLATE_INST.
	(lookup_template_class): Refactor timevar calls out to a wrapper
	function.  Change use of TV_NAME_LOOKUP to TV_TEMPLATE_INST.
	(instantiate_decl): Change TV_PARSE to TV_TEMPLATE_INST.

	* name-lookup.c: (store_bindings): Change TV_NAME_LOOKUP to start/stop.
	(poplevel_class): Change TV_NAME_LOOKUP to start_cond/stop_cond.
	(push_namespace): Likewise.
	(pop_nested_namespace): Likewise.
	(pushdecl_namespace_level): Likewise.
	(store_class_bindings): Likewise.
	(push_to_top_level): Likewise.
	(identifier_type_value): Refactor timevar calls out to a wrapper
	function.  Change TV_NAME_LOOKUP to start/stop.
	(find_binding): Likewise.
	(push_using_decl): Likewise.
	(lookup_arg_dependent): Likewise.
	(push_using_directive): Likewise.
	(qualified_lookup_using_namespace): Refactor POP_TIMEVAR_AND_RETURN
	to plain code.  Change TV_NAME_LOOKUP to start/stop.
	(lookup_type_current_level): Likewise.  Refactor inner return to
	break.
	(pushdecl_class_level): Refactor POP_TIMEVAR_AND_RETURN to plain
	code.  Change TV_NAME_LOOKUP to start_cond/stop_cond.
	(pushdecl_top_level_1): Likewise.
	(lookup_using_namespace): Likewise.
	(pushdecl_with_scope): Refactor timevar calls out to a wrapper
	function.  Change TV_NAME_LOOKUP to start_cond/stop_cond.
	(push_overloaded_decl): Likewise.
	(push_class_level_binding): Likewise.
	(namespace_binding): Likewise.
	(set_namespace_binding): Likewise.
	(supplement_binding): Likewise.
	(unqualified_namespace_lookup): Likewise.
	(lookup_name_real): Likewise.
	(lookup_type_scope): Likewise.
	(namespace_ancestor): Likewise.
	(lookup_name_innermost_nonclass_level): Likewise.
	(pushtag): Likewise.
	(pop_from_top_level): Likewise.
	(pushdecl_maybe_friend): Refactor timevar calls out to a wrapper
	function.  Change TV_NAME_LOOKUP to start_cond/stop_cond.  Wrap long
	lines.
	(add_using_namespace): Refactor timevar calls out to a wrapper
	function.  Change TV_NAME_LOOKUP to start_cond/stop_cond.  Bypass
	wrapper on call to self.

	* decl2.c: (cp_write_global_declarations):  Add start/stop of
	new TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_CHECK_DBGINFO.
	Remove push/pop calls to TV_VARCONST.

	* parser.c: Add include of "timevar.h".
	(cp_parser_explicit_instantiation): Add push/pop calls to
	TV_TEMPLATE_INST.
	(cp_parser_enum_specifier): Add push/pop calls to new TV_PARSE_ENUM.
	(cp_parser_class_specifier): Add wrapper to add push/pop calls to
	TV_PARSE_STRUCT.
	(cp_parser_function_definition_from_specifiers_and_declarator): Add
	push/pop calls to new TV_PARSE_FUNC or TV_PARSE_INLINE.
	(cp_parser_late_parsing_for_member):  Add push/pop calls to
	new TV_PARSE_INMETH.

	* call.c: Add include of "timevar.h".
	(convert_class_to_reference): Wrap and add push/pop calls to 
	TV_OVERLOAD.
	(build_op_call): Likewise.
	(build_conditional_expr): Likewise.
	(build_new_op): Likewise.
	(build_new_method_call): Likewise.
	(build_user_type_conversion): Reorganize to single return and add
	push/pop calls to TV_OVERLOAD.
	(perform_overload_resolution): Likewise.

	* Make-lang.in: Add dependence of call.o and parser.o on $(TIMEVAR_H).

2011-05-02  Jason Merrill  <jason@redhat.com>

	* tree.c (build_vec_init_expr): Take complain parm.
	(build_vec_init_elt): Likewise.  Free arg vector.
	(diagnose_non_constexpr_vec_init, build_array_copy): Adjust.
	* cp-tree.h (VEC_INIT_EXPR_SLOT): Use VEC_INIT_EXPR_CHECK.
	(VEC_INIT_EXPR_INIT): Likewise.
	Adjust build_vec_init_expr declaration.
	* init.c (perform_member_init): Adjust.

	Revert:
	PR c++/40975
	* cp-tree.def (VEC_INIT_EXPR): Add third operand.
	* cp-tree.h (VEC_INIT_EXPR_NELTS): New.
	* cp-gimplify.c (cp_gimplify_expr) [VEC_INIT_EXPR]: Handle it.
	* tree.c (build_vec_init_expr): Handle getting pointer/nelts.
	(build_vec_init_elt): Don't expect an array type.
	(build_array_copy): Adjust.
	* init.c (perform_member_init): Adjust.
	(build_new_1): Use build_vec_init_expr.

	PR c++/48834
	* tree.c (build_vec_init_expr): Set TREE_SIDE_EFFECTS.
	Protect an explicit target.

	PR c++/48446
	* decl.c (stabilize_save_expr_r, stabilize_vla_size): New.
	(compute_array_index_type): Revert earlier 48446 changes.
	(grokdeclarator): Use stabilize_vla_size.

2011-05-02  Dmitry Gorbachev  <d.g.gorbachev@gmail.com>
	    Eric Botcazou <ebotcazou@adacore.com>

	* parser.c (cp_parser_init_declarator): Set pushed_scope to NULL_TREE
	instead of inappropriate zero values.

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

	PR c++/47969
	* decl.c (compute_array_index_type): Check build_expr_type_conversion
	return value for NULL_TREE.

2011-04-29  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/48606
	* init.c (perform_member_init): Check build_value_init return
	value for error_mark_node.

2011-04-29  Diego Novillo  <dnovillo@google.com>
	    Le-Chun Wu  <lcwu@google.com>

	* call.c (conversion_null_warnings): Also handle assignments
	when warning about NULL conversions.

2011-04-29  Le-Chun Wu  <lcwu@google.com>

	* cp-tree.h (LOOKUP_EXPLICIT_TMPL_ARGS): Define.
	* call.c (build_new_function_call): Set it for TEMPLATE_ID_EXPRs.
	(build_over_call): Use it to determine whether to emit a NULL
	warning for template function instantiations.
	(build_new_method_call): Set LOOKUP_EXPLICIT_TMPL_ARGS if
	EXPLICIT_TARGS is set.

2011-04-29  Nicola Pero  <nicola.pero@meta-innovation.com>,
	    Mike Stump <mikestump@comcast.net>

	* Make-lang.in ($(srcdir)/cp/cfns.h): Enable the dependency only
	in maintainer mode.  Use the --output-file option of gperf instead
	of > to prevent creating an empty cp/cfns.h when gperf is not
	available.

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

	PR c++/48798
	* semantics.c (finish_base_specifier): cv-qualified base class
	is fine, per DR 484.

2011-04-28  Dodji Seketeli  <dodji@redhat.com>

	PR c++/48656
	* semantics.c (finish_call_expr): Don't forget BASELINK nodes when
	considering call expressions involving a member function.

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

	PR c++/48530
	* tree.c (build_cplus_new): Check build_target_expr return
	value for error_mark_node.

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

	PR c++/48771
	* semantics.c (literal_type_p): Reference types are literal types,
	per the FDIS.
	(valid_type_in_constexpr_fundecl_p): Remove.
	(is_valid_constexpr_fn): Adjust.

2011-04-27  Jason Merrill  <jason@redhat.com>

	PR libstdc++/48760
	Implement list-initialization of _Complex.
	* decl.c (reshape_init_r): Allow {real,imag} for _Complex.
	(check_initializer): Likewise.
	* call.c (build_complex_conv): New.
	(implicit_conversion): Call it.
	(convert_like_real): Handle it.
	* typeck2.c (check_narrowing): Handle it.

	* init.c (build_vec_delete_1): Look for sfk_deleting_destructor to
	decide whether to delete.
	(build_vec_init): Pass sfk_complete_destructor.

	PR c++/40975
	* cp-tree.def (VEC_INIT_EXPR): Add third operand.
	* cp-tree.h (VEC_INIT_EXPR_NELTS): New.
	* cp-gimplify.c (cp_gimplify_expr) [VEC_INIT_EXPR]: Handle it.
	* tree.c (build_vec_init_expr): Handle getting pointer/nelts.
	(build_vec_init_elt): Don't expect an array type.
	(build_array_copy): Adjust.
	* init.c (perform_member_init): Adjust.
	(build_new_1): Use build_vec_init_expr.

	* class.c (resolve_address_of_overloaded_function): Don't
	change OVERLOAD to TREE_LIST.
	* pt.c (print_candidates_1): Remove nonsensical assert.

	PR c++/48046
	* parser.c (cp_parser_diagnose_invalid_type_name): Commit
	to tentative parse sooner.

2011-04-26  Jason Merrill  <jason@redhat.com>

	PR c++/42687
	* parser.c (cp_parser_primary_expression): Set *idk to
	CP_ID_KIND_NONE for a parenthesized identifier.

	* ptree.c (cxx_print_type) [TYPENAME_TYPE]: Dump fullname.
	(cxx_print_identifier): Correct indentation.

	PR c++/48530
	* decl.c (cxx_maybe_build_cleanup): Add complain parm.
	* tree.c (force_target_expr): Add complain parm.
	(build_target_expr_with_type): Likewise.
	(get_target_expr_sfinae): Split out.
	(build_vec_init_expr, bot_manip): Adjust.
	* init.c (build_vec_delete, build_vec_delete_1): Add complain parm.
	(build_delete, build_dtor_call): Likewise.
	(perform_direct_initialization_if_possible): Adjust.
	(build_vec_init): Handle error return.
	* cvt.c (force_rvalue): Add complain parm.
	Call build_special_member_call directly.
	* decl2.c (delete_sanity): Add complain parm.
	(build_cleanup): Adjust.
	* pt.c (tsubst_copy_and_build, tsubst_expr): Adjust.
	* semantics.c (finish_stmt_expr_expr): Adjust.
	(finish_compound_literal): Adjust.
	* parser.c (cp_parser_delete_expression): Adjust.
	* typeck2.c (build_functional_cast): Adjust.
	* cp-tree.h: Adjust.

2011-04-26  Martin Jambor  <mjambor@suse.cz>

	* class.c (cp_fold_obj_type_ref): Remove.
	* cp-tree.h (cp_fold_obj_type_ref): Remove declaration.

2011-04-25  Paolo Carlini  <paolo.carlini@oracle.com>

	* cp-tree.def: Add a new UNDERLYING_TYPE tree code.
	* cp-tree.h (enum cp_trait_kind): Add CPTK_UNDERLYING_TYPE, tidy.
	(UNDERLYING_TYPE_TYPE): Add.
	* cp-objcp-common.c (cp_common_init_ts): Mark UNDERLYING_TYPE
	as TS_COMMON.
	* parser.c (cp_lexer_next_token_is_decl_specifier_keyword,
	cp_parser_simple_type_specifier): Handle UNDERLYING_TYPE.
	(cp_parser_trait_expr): Deal with RID_UNDERLYING_TYPE; tidy.
	* semantics.c (finish_underlying_type): New.
	* typeck.c (structural_comptypes): Handle UNDERLYING_TYPE.
	* error.c (dump_type, dump_type_prefix, dump_type_suffix): Likewise.
	* cxx-pretty-print.c (p_cxx_type_id): Likewise.
	* tree.c (cp_walk_subtrees): Likewise.
	* pt.c (for_each_template_parm_r, tsubst, unify,
	dependent_type_p_r): Likewise.
	* mangle.c (write_type): Sorry for __underlying_type.

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

	PR c++/48707
	* decl.c (type_dependent_init_p): New.
	(cp_finish_decl): Check it.
	* pt.c (any_type_dependent_elements_p): New.
	* cp-tree.h: Declare it.

2011-04-20  Jason Merrill  <jason@redhat.com>

	* semantics.c (finish_compound_literal): Don't put an array
	with a dtor in a static variable.

	* call.c (build_over_call): Handle trivial dtor.

	* search.c (lookup_fnfields_slot): Call complete_type.

	PR c++/48594
	* decl2.c (build_offset_ref_call_from_tree): Move
	non-dependency of object outside condition.

	PR c++/48657
	* decl.c (cp_finish_decl): Simplify template handling.

2011-04-20  Jim Meyering  <meyering@redhat.com>

	* tree.c (cxx_printable_name_internal): Remove useless if-before-free.

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

	PR c++/46304
	* typeck.c (cp_build_binary_op): Fold COMPLEX_EXPR.

	PR c++/45267
	* decl.c (duplicate_decls): Keep always_inline attribute
	in sync with DECL_DISREGARD_INLINE_LIMITS.

2011-04-18  Jason Merrill  <jason@redhat.com>

	PR c++/48569
	* typeck2.c (build_functional_cast): Handle VOID_TYPE.

	PR c++/48537
	* init.c (build_value_init): Handle UNION_TYPE the same.

2011-04-18  Jakub Jelinek  <jakub@redhat.com>

	PR c++/48632
	* parser.c (cp_parser_omp_for_loop): Don't use cp_parser_omp_for_incr
	for type dependent pointers.

2011-04-18  Jim Meyering  <meyering@redhat.com>

	* pt.c (type_unification_real): Fix typo in comment: s/in in/in/.

2011-04-17  Jan Hubicka  <jh@suse.cz>

	* semantics.c (finish_goto_stmt): Do set UNINLINABLE flag on computed
	gotos.

2011-04-17  Jason Merrill  <jason@redhat.com>

	PR c++/48531
	* typeck2.c (build_functional_cast): Disallow array type.

	* tree.c (get_target_expr): Handle VEC_INIT_EXPR.

2011-04-17  Jan Hubicka  <jh@suse.cz>

	* class.c (cp_fold_obj_type_ref): Drop vtable_method.

2011-04-15  Rodrigo Rivas Costa <rodrigorivascosta@gmail.com>

	Implement N3271
	* parser.c (cp_convert_range_for): Split into
	cp_parser_perform_range_for_lookup.
	(cp_parser_perform_range_for_lookup): New.
	(cp_parser_range_for_member_function): New.
	(cp_parser_for_init_statement): Correct error message.
	* semantics.c (finish_call_expr): Accept COMPONENT_REF.

2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>

	* parser.c (cp_parser_objc_protocol_declaration): Updated for
	change from objc_declare_protocols() to objc_declare_protocol().

2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>

	PR objc++/48479
	* typeck.c (cxx_mark_addressable) [CONST_DECL]: Mark addressable
	and return immediately.

2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>

	* cp-tree.def (SWITCH_STMT): Add an extra operand.
	* cp-objcp-common.c (cp_common_init_ts): Mark it as TS_TYPED.
	* cp-tree.h (SWITCH_STMT_SCOPE): Define.
	* semantics.c (begin_switch__stmt): Pass scope to build_stmt.
	(finish_switch_stmt): Use SWITCH_STMT_SCOPE instead of TREE_CHAIN.

2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>

	* cp-tree.def (IF_STMT): Add an extra operand.
	* cp-objcp-common.c (cp_common_init_ts): Mark it as TS_TYPED.
	* cp-tree.h (IF_SCOPE): Define.
	* semantics.c (begin_if_stmt): Pass scope to build_stmt.
	(finish_if_stmt): Use IF_SCOPE instead of TREE_CHAIN.

2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>

	* cp-tree.def (FOR_STMT, RANGE_FOR_STMT): Add an extra operand.
	* cp-objcp-common.c (cp_common_init_ts): Mark them as TS_TYPED.
	* cp-tree.h (FOR_SCOPE, RANGE_FOR_SCOPE): Define.
	* semantics.c (begin_for_stmt): Pass an extra arg to build_stmt.
	Use FOR_SCOPE instead of TREE_CHAIN.
	(begin_range_for_stmt): Likewise, with RANGE_FOR_SCOPE.
	(finish_for_stmt): Likewise.

2011-04-14  Jason Merrill  <jason@redhat.com>

	* parser.c (cp_parser_postfix_expression): Fix flags passed to
	build_new_method_call.
	* semantics.c (finish_call_expr): Likewise.

	PR c++/48531
	* init.c (build_value_init_noctor): Check complain consistently.

	PR c++/48557
	* typeck.c (cp_build_binary_op): Don't decay void operands.

	PR c++/48446
	* decl.c (compute_array_index_type): Use get_temp_regvar instead
	of variable_size.
	* init.c (get_temp_regvar): No longer static.
	* cp-tree.h: Declare it.

2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>

	* parser.c (cp_parser_objc_class_declaration): Updated for change
	in objc_declare_class().

2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>

	* decl.c (poplevel): Use block_chainon.

2011-04-13  Jason Merrill  <jason@redhat.com>

	PR c++/48594
	* decl2.c (build_offset_ref_call_from_tree): Fix calling a functor
	or pointer to (non-member) function.

2011-04-13  Jakub Jelinek  <jakub@redhat.com>

	PR c++/48570
	* semantics.c (cxx_eval_array_reference): Handle reading from
	wchar_t, char16_t and char32_t STRING_CST.

2011-04-13  Dodji Seketeli  <dodji@redhat.com>

	PR c++/48574
	* class.c (fixed_type_or_null): We cannot determine the dynamic
	type of a reference variable if its initializer is dependent.

2011-04-13  Jason Merrill  <jason@redhat.com>

	PR c++/48581
	* pt.c (tsubst_copy_and_build) [CALL_EXPR]: Don't complain about
	unqualified lookup failing if we're still in a template.

2011-04-12  Nathan Froyd  <froydnj@codesourcery.com>

	* cp-lang.c (cp_init_ts): Call cp_common_init_ts.  Move
	tree_contains_struct initialization to...
	* cp-objcp-common.c (cp_common_init_ts): ...here.  Use MARK_*
	macros.
	* cp-objcp-common.h (cp_common_init_ts): Declare.
	* cp-tree.h (union lang_tree_node): Check for TS_COMMON before
	calling TREE_CHAIN.

2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>

	* parser.c (cp_parser_objc_message_expression): Updated call
	to objc_build_message_expr.

2011-04-12  Martin Jambor  <mjambor@suse.cz>

	* class.c (cp_fold_obj_type_ref): Call cgraph_get_node instead of
	cgraph_get_create_node.
	* decl2.c (cp_write_global_declarations): Call cgraph_get_node
	instead of cgraph_get_create_node.
	* method.c (make_alias_for_thunk): Call cgraph_get_node
	instead of cgraph_get_create_node, assert it returns non-NULL.
	(use_thunk): Likewise.
	* optimize.c (maybe_clone_body): Call cgraph_same_body_alias only
	when flag_syntax_only is not set.  Call cgraph_get_node instead of
	cgraph_get_create_node.
	(maybe_clone_body): Call cgraph_get_node instead of
	cgraph_get_create_node.

2011-04-12  Martin Jambor  <mjambor@suse.cz>

	* class.c (cp_fold_obj_type_ref): Call cgraph_get_create_node
	instead of cgraph_node.
	* decl2.c (cxx_callgraph_analyze_expr): Likewise.
	(cp_write_global_declarations): Likewise.
	* optimize.c (maybe_clone_body): Likewise.
	* semantics.c (maybe_add_lambda_conv_op): Likewise.
	* mangle.c (mangle_decl): Likewise.
	* method.c (make_alias_for_thunk): Likewise.
	(use_thunk): Likewise.

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

	PR c++/48535
	* decl.c (cp_complete_array_type_or_error): New.
	* semantics.c (finish_compound_literal): Use it.
	* cp-tree.h: Declare it.

	PR c++/48535
	* semantics.c (finish_compound_literal): Handle references.

	PR c++/48535
	* semantics.c (finish_compound_literal): Take complain parm.
	(build_lambda_object): Adjust.
	* cp-tree.h: Adjust.
	* call.c (convert_like_real): Adjust.
	* decl.c (check_initializer): Adjust.
	* parser.c (cp_parser_postfix_expression): Adjust.
	(cp_parser_functional_cast): Adjust.
	* pt.c (tsubst_copy_and_build): Adjust.
	* typeck2.c (process_init_constructor_record): Adjust.

	PR c++/48534
	* cvt.c (ocp_convert): Use build_nop to convert to underlying type
	of scoped enum.

	PR c++/48523
	* tree.c (maybe_dummy_object): Use build_x_indirect_ref rather
	than cp_build_indirect_ref.

	PR c++/48457, Core 1238
	* call.c (reference_binding): Allow rvalue reference to bind to
	function lvalue.
	* tree.c (lvalue_kind): Functions are always lvalues.

2011-04-07  Jason Merrill  <jason@redhat.com>

	PR c++/48500
	* semantics.c (potential_constant_expression_1) [CALL_EXPR]: Check
	arguments even if we don't know the function.

	PR c++/48481
	* tree.c (build_overload): Allow an unwrapped FUNCTION_DECL
	at the end of the chain.
	* pt.c (dependent_template_p): Use OVL_CURRENT/NEXT.
	(iterative_hash_template_arg): Likewise.

	PR c++/48481
	* cp-tree.h (OVL_ARG_DEPENDENT): New.
	* name-lookup.c (add_function): Set it.
	* semantics.c (finish_call_expr): Free OVERLOADs if it's set.

	PR c++/48481
	* call.c (build_user_type_conversion_1): Use lookup_fnfields_slot.
	Release unused vector.

	PR c++/48451
	* pt.c (fn_type_unification): Don't clear incomplete pack flag.
	(type_unification_real): Clear it here instead.

	PR c++/48468
	* except.c (build_noexcept_spec): Propagate error_mark_node.
	(finish_noexcept_expr): Likewise.

	PR c++/48452
	* typeck.c (build_x_compound_expr_from_list): Return error_mark_node
	in SFINAE context.

	PR c++/48450
	* call.c (resolve_args): Take complain.
	(build_new_function_call, build_operator_new_call): Pass it.
	(build_op_call, build_new_op, build_new_method_call): Pass it.

	PR c++/48450
	* typeck.c (check_for_casting_away_constness): Take complain.
	(build_static_cast_1, build_reinterpret_cast_1): Pass it.
	(build_const_cast_1): Pass it.  Take full complain parm.
	(build_const_cast, cp_build_c_cast): Adjust.

	* tree.c (build_aggr_init_expr): Always return error_mark_node
	on abstract violation.

	PR c++/48450
	* tree.c (build_cplus_new, build_aggr_init_expr): Take complain.
	(bot_manip): Adjust.
	* cp-tree.h: Adjust.
	* call.c (convert_like_real, build_cxx_call): Adjust.
	(perform_direct_initialization_if_possible): Adjust.
	* cvt.c (ocp_convert): Adjust.
	* init.c (build_value_init): Adjust.
	* semantics.c (maybe_add_lambda_conv_op): Adjust.
	* typeck.c (unary_complex_lvalue, cp_build_modify_expr): Adjust.
	* typeck2.c (build_functional_cast): Adjust.

	* init.c (build_value_init_noctor): Handle REFERENCE_TYPE at top
	level.
	(perform_member_init): Not here.
	* typeck2.c (build_functional_cast): Limit REFERENCE_TYPE special
	case to templates.
	(abstract_virtuals_error_sfinae): Remove RESULT_DECL special case.

	PR c++/48449
	* typeck2.c (build_functional_cast): Check complain consistently.
	Use build_value_init and abstract_virtuals_error_sfinae.
	(abstract_virtuals_error_sfinae): Split out.
	* cp-tree.h: Declare it.
	* init.c (build_new_1): Use it.
	(build_value_init_noctor): Handle FUNCTION_TYPE.

	* semantics.c (finish_decltype_type): Simplify handling of unknown
	type.

	* semantics.c (finish_decltype_type): Add complain parm.
	* cp-tree.h: Adjust.
	* parser.c (cp_parser_decltype): Adjust.
	* pt.c (tsubst): Adjust.

	PR c++/48450
	* cvt.c (ocp_convert): Handle converting scoped enum to bool.

2011-03-31  Jason Merrill  <jason@redhat.com>

	PR c++/48277
	* semantics.c (finish_call_expr): Remove assert.

	PR c++/48280
	* method.c (defaultable_fn_check): Templates are not defaultable.

	* parser.c (cp_parser_init_declarator): Avoid redundant
	cp_finish_decl for member declarations.

2011-03-30  Jason Merrill  <jason@redhat.com>

	PR c++/48212
	* semantics.c (non_const_var_error): Just return if DECL_INITIAL
	is error_mark_node.

2011-03-30  Jason Merrill  <jason@redhat.com>

	PR c++/48369
	* semantics.c (potential_constant_expression_1): Handle
	UNORDERED_EXPR and ORDERED_EXPR.

	PR c++/48281
	* semantics.c (finish_compound_literal): Do put static/constant
	arrays in static variables.

	* call.c (convert_like_real) [ck_list]: Build up the
	initializer_list object directly.
	* decl.c (build_init_list_var_init): Adjust.

	* call.c (convert_like_real): Correct TREE_CONSTANT on CONSTRUCTOR.
	* decl.c (reshape_init_array_1): Likewise.

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

	PR c++/48265
	* pt.c (value_dependent_expression_p) [VAR_DECL]: Make sure
	the variable is constant before looking at its initializer.

	PR c++/48319
	* pt.c (value_dependent_expression_p): Handle TEMPLATE_ID_EXPR.

	PR c++/48089
	* semantics.c (potential_constant_expression_1): Change error about
	use of *this in constructor into sorry.

	PR c++/48296
	* decl.c (cp_finish_decl): Defer validation of constexpr member
	functions.
	* class.c (finalize_literal_type_property): Validate them here.
	* semantics.c (is_valid_constexpr_fn): Don't check completeness.

	* semantics.c (is_valid_constexpr_fn): Specify input location.

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

	PR c++/48313
	* pt.c (maybe_adjust_types_for_deduction): Handle T&& deduction
	from overloaded function.

	Core 1232
	* call.c (build_array_conv): New.
	(implicit_conversion): Use it.

	* call.c (reference_binding): Allow direct binding to an array
	rvalue.

	Core 898
	* parser.c (cp_parser_compound_statement): Add function_body parm.
	Complain about non-body compound-stmt in constexpr fn.
	(cp_parser_primary_expression, cp_parser_statement): Adjust.
	(cp_parser_implicitly_scoped_statement): Adjust.
	(cp_parser_function_body, cp_parser_try_block): Adjust.
	(cp_parser_handler, cp_parser_objc_synchronized_statement): Adjust.
	(cp_parser_objc_try_catch_finally_statement): Adjust.

	Core 898
	* semantics.c (constexpr_fn_retval): New.  Allow using-declaration
	and using-definition.
	(register_constexpr_fundef): Call it.

	* except.c (build_noexcept_spec): Call cxx_constant_value after
	converting to bool.

2011-03-25  Kai Tietz  <ktietz@redhat.com>

	* lex.c (interface_strcmp): Handle dos-paths.
	(handle_pragma_implementation): Use filename_cmp instead of
	strcmp.
	(in_main_input_context): Likewise.

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

	Core 1135
	* method.c (defaulted_late_check): Check for exception spec mismatch.
	(defaultable_fn_check): Allow exception spec and virtual.
	* class.c (check_for_override): A virtual dtor is non-trivial.

	PR c++/48289
	* pt.c (build_non_dependent_expr): Keep dereferences outside the
	NON_DEPENDENT_EXPR.

2011-03-25  Kai Tietz  <ktietz@redhat.com>

	* decl.c (decls_match): Replace target hook
	call of comp_type_attributes by version in tree.c file.
	* search.c (check_final_overrider): Likewise.
	* typeck.c (structural_comptypes): Likewise.

2011-03-21  Kai Tietz  <ktietz@redhat.com>

	PR target/12171
	* cxx-pretty-print.c (pp_cxx_ptr_operator):
	Display allowed attributes for function pointer types.
	* error.c (dump_type_prefix): Likewise.

	* tree.c (cxx_attribute_table): Adjust table.

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

	PR c++/48162
	* semantics.c (finish_call_expr): Allow TARGET_EXPR for now.

	PR c++/48118
	* call.c (build_over_call): Don't skip ck_rvalue.

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

	PR c++/47504
	* semantics.c (cxx_eval_constant_expression) [NOP_EXPR]: Don't let
	the conversion set TREE_OVERFLOW.

	Core 1212
	* semantics.c (finish_decltype_type): Return T&& for xvalue.
	* typeck.c (unlowered_expr_type): Preserve cv-quals.

	PR c++/48166
	* decl.c (revert_static_member_fn): Strip function-cv-quals.

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

	PR c++/48089
	* semantics.c (potential_constant_expression_1): Don't allow *this
	in a constructor.
	(register_constexpr_fundef): Use potential_rvalue_constant_expression.

	PR c++/47301
	* decl.c (compute_array_index_type): Don't bother trying to deal
	with literal classes in ABI v1.

	PR c++/46336
	* decl.c (duplicate_decls): Return NULL_TREE for clashing
	C functions.

	PR c++/47570
	* semantics.c (cxx_eval_constant_expression) [COMPOUND_EXPR]: Don't
	use the generic binary expression handling.

2011-03-16  Diego Novillo  <dnovillo@google.com>

	* Make-lang.in (CXX_PARSER_H): New.
	(cp/parser.o): Add dependency on CXX_PARSER_H.
	Add dependency on tree-pretty-print.h
	(cp/cp-lang.o): Add dependency on CXX_PARSER_H.
	* cp-lang.c: Include parser.h.
	* parser.c: Include parser.h.
	(struct cp_token): Add bitfield purged_p.
	Update all users.
	Move to parser.h.
	(CPP_PURGED): Remove.  Update all users.
	(struct cp_lexer): Change field buffer to be a VEC of cp_token.
	Remove field buffer_length.
	Update all users.
	Move to parser.h.
	(struct tree_check): Move to parser.h.
	(cp_token_position): Likewise.
	(struct cp_token_cache): Likewise.
	(CPP_KEYWORD): Likewise.
	(CPP_TEMPLATE_ID): Likewise.
	(CPP_NESTED_NAME_SPECIFIER): Likewise.
	(N_CP_TTYPES): Likewise.
	(enum cp_parser_status_kind): Likewise.
	(struct cp_parser_context): Likewise.
	(struct cp_default_arg_entry_d): Likewise.
	(struct cp_unparsed_functions_entry_d): Likewise.
	(struct cp_parser): Likewise.
	(cp_lexer_dump_tokens): New.
	(cp_lexer_debug_tokens): New.
	(cp_lexer_finished_p): New.
	(cp_lexer_alloc): Factor out of cp_lexer_new_main.
	(cp_lexer_new_main): Re-write main lexing loop to push
	tokens into the new VEC buffer.
	(cp_lexer_print_token): Improve printing of CPP_NUMBER tokens.
	Do not abort if the token type is not recognized, just print
	its code.
	* parser.h: New file.
	* config-lang.in (gtfiles): Add cp/parser.h.

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

	Core 1148
	* typeck.c (check_return_expr): Fix conditions for setting
	LOOKUP_PREFER_RVALUE.

	* call.c (build_over_call): Remove require_complete_type_sfinae call.

	PR c++/48132
	* decl.c (check_array_designated_initializer): Allow integer index.
	(reshape_init_array_1): Set index on the elements.

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

	PR c++/48113
	* typeck.c (convert_for_initialization): Use
	perform_implicit_conversion_flags.
	* call.c (standard_conversion): If LOOKUP_PREFER_RVALUE, set
	rvaluedness_matches_p on ck_rvalue.
	(convert_like_real) [ck_rvalue]: And restore it here.

	PR c++/48115
	* call.c (convert_arg_to_ellipsis): Handle incomplete type.

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

	* parser.c (cp_parser_abort_tentative_parse): Make sure we haven't
	committed to this tentative parse.

	PR c++/47999
	* semantics.c (finish_call_expr): Preserve reference semantics
	in templates.

	* call.c (convert_default_arg): Use LOOKUP_IMPLICIT.

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

	* cp-objcp-common.c (cp_function_decl_explicit_p): Don't crash if
	DECL_LANG_SPECIFIC is NULL.

2011-03-15  Jason Merrill  <jason@redhat.com>

	Core 1074
	* pt.c (value_dependent_expression_p) [NOEXCEPT_EXPR]: Don't
	check value_dependent_expression_p on the operand.

	* semantics.c (push_cx_call_context): Return bool.
	(cxx_eval_call_expression): Handle excess depth.

	Core 1191
	* method.c (synthesized_method_walk): Cleanups don't affect the
	triviality of a constructor, but do affect deletion and exception
	specification.

2011-03-15  Rodrigo Rivas Costa  <rodrigorivascosta@gmail.com>

	* decl2.c (cp_check_const_attributes): New.
	(cplus_decl_attributes): Call cp_check_const_attributes.

2011-03-15  Jason Merrill  <jason@redhat.com>

	PR c++/34758
	* call.c (convert_default_arg): Use DECL_ORIGIN of fn.  Check for
	recursion first.
	(push_defarg_context, pop_defarg_context): New.
	* parser.c (cp_parser_late_parsing_default_args): Use them.
	* cp-tree.h: Declare them.

2011-03-11  Dodji Seketeli  <dodji@redhat.com>

	* call.c (add_builtin_candidate)<case INDIRECT_REF>: The type of
	the argument of the indirection operator should not be dependent.
	Fix the comment.

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

	PR c++/47125
	* pt.c (tsubst) [TYPENAME_TYPE]: Only give errors if tf_error.

	PR c++/47144
	* parser.c (cp_parser_template_type_arg): Set
	type_definition_forbidden_message.

	PR c++/47808
	* decl.c (compute_array_index_type): Discard folding
	if it didn't produce a constant.

2011-03-11  Jakub Jelinek  <jakub@redhat.com>

	PR c++/48035
	* init.c (build_zero_init_1): Extracted from build_zero_init.
	Add FIELD_SIZE argument, if non-NULL and field bit_position
	as not smaller than that, don't add that field's initializer.
	Pass DECL_SIZE as last argument to build_zero_init_1
	for DECL_FIELD_IS_BASE fields.
	(build_zero_init): Use build_zero_init_1.

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

	PR c++/48029
	* pt.c (iterative_hash_template_arg): Remove special case for
	ARRAY_TYPE.

	PR c++/47198
	* parser.c (cp_parser_single_declaration): Just return if
	cp_parser_parse_and_diagnose_invalid_type_name complained.

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

	PR c++/44629
	* pt.c (unify): An unresolved overload is a nondeduced context.

2011-03-09  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/47714
	* method.c (use_thunk): Clear addressable flag of thunk arguments.

2011-03-08  Dodji Seketeli  <dodji@redhat.com>

	PR c++/47705
	* pt.c (convert_nontype_argument): Only call decay_conversion on
	arrays.

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

	PR c++/47488
	* mangle.c (write_template_arg_literal) [STRING_CST]: Sorry.

	PR c++/47705
	* pt.c (convert_nontype_argument): Don't crash on non-pointer
	argument to pointer parameter.

	PR c++/45651
	* pt.c (instantiate_decl): Don't clear DECL_INTERFACE_KNOWN on
	!TREE_PUBLIC decls.

2011-03-08  Dodji Seketeli  <dodji@redhat.com>

	PR c++/47957
	* name-lookup.c (binding_to_template_parms_of_scope_p): Only
	consider scopes of primary template definitions.  Adjust comments.

2011-03-07  Jason Merrill  <jason@redhat.com>

	PR c++/48003
	* pt.c (convert_nontype_argument): Fix -fpermissive allowing
	integer overflow.
	* semantics.c (potential_constant_expression_1): Check TREE_OVERFLOW.

	PR c++/48015
	* init.c (constant_value_1): Always require init to be TREE_CONSTANT.

	PR c++/48008
	* mangle.c (write_type): Strip cv-quals from FUNCTION_TYPE here.
	(write_CV_qualifiers_for_type): Not here.

2011-03-06  Joseph Myers  <joseph@codesourcery.com>

	* lang-specs.h: Match -save-temps* instead of -save-temps.

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

	* mangle.c (write_expression): Change ABI v6 to v5.
	(write_type): Likewise.

2011-03-04  Jan Hubicka  <jh@suse.cz>

	PR lto/47497
	* optimize.c (maybe_clone_body): Update call of cgraph_same_body_alias
	and cgraph_add_thunk.
	* method.c (make_alias_for_thunk, use_thunk): Likewise.
	* mangle.c (mangle_decl): Likewise.

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

	PR c++/47971
	* pt.c (tsubst_copy_and_build) [PSEUDO_DTOR_EXPR]: Use tsubst for type.
	(tsubst_copy) [default]: Just return t if !ENABLE_CHECKING.

	PR c++/46220
	* search.c (check_final_overrider): Allow pointer to same incomplete
	class type with different cv-quals.

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

	PR c++/47974
	* pt.c (tsubst_template_args): Check argument t for error_mark_node.

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

	PR c++/47950
	* pt.c (tsubst_copy_and_build) [TARGET_EXPR]: Retain TREE_CONSTANT.

2011-03-02  Jason Merrill  <jason@redhat.com>

	PR c++/47950
	* parser.c (cp_parser_condition): Don't fold_non_dependent_expr here.

	PR c++/47774
	* tree.c (build_vec_init_elt): Split out from...
	(build_vec_init_expr): ...here.
	(diagnose_non_constexpr_vec_init): New fn.
	* semantics.c (potential_constant_expression_1): Use it.
	* cp-tree.h: Declare it.

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

	PR c++/46159
	* parser.c (cp_parser_primary_expression): Don't warn about a
	failed tentative parse.

	PR c++/47200
	* semantics.c (cxx_bind_parameters_in_call): Don't call
	adjust_temp_type on non-constant args.

	PR c++/47851
	* call.c (standard_conversion): Provide requested cv-quals on
	class rvalue conversion.

	PR c++/46282
	* decl2.c (grokbitfield): Handle type-dependent width.

2011-02-28  Jason Merrill  <jason@redhat.com>

	PR c++/47873
	* class.c (update_vtable_entry_for_fn): Check BINFO_LOST_PRIMARY_P
	after checking for a non-thunk.

2011-02-26  Jason Merrill  <jason@redhat.com>

	PR c++/47904
	* tree.c (cp_tree_equal): Compare DECL_PARM_LEVEL.
	* pt.c (iterative_hash_template_arg): And hash it.

	PR c++/47897
	* semantics.c (non_const_var_error): Split out from...
	(cxx_eval_constant_expression): ...here.
	(potential_constant_expression_1) [VAR_DECL]: Use it.
	Allow dependent variables.

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

	* parser.c (cp_parser_constant_expression): Set
	non_integral_constant_expression correctly for C++0x too.
	(cp_parser_static_assert): Allow non-constant expression.
	(cp_parser_direct_declarator): Expect non_constant_p to be set
	properly for C++0x.
	* pt.c (value_dependent_expression_p): Handle TYPEID_EXPR.
	* semantics.c (maybe_constant_value): Check type_unknown_p too.
	(potential_rvalue_constant_expression): New.
	(require_potential_rvalue_constant_expression): New.

2011-02-23  Jason Merrill  <jason@redhat.com>

	* cp-tree.h (DECL_PARM_LEVEL): New.
	(struct lang_decl_parm): Add level field.
	* name-lookup.c (function_parm_depth): New fn.
	* name-lookup.h: Declare it.
	* parser.c (cp_parser_parameter_declaration_list): Use it.
	* mangle.c (struct globals): Add parm_depth field.
	(write_bare_function_type): Adjust it.
	(write_expression): Include the level delta in PARM_DECL mangling
	for abi >= 6.

	* semantics.c (finish_decltype_type): Remove shortcut for decltype
	of id-expression.
	* mangle.c (write_type) [DECLTYPE_TYPE]: Strip it here for abi < 6.

2011-02-23  Nathan Froyd  <froydnj@codesourcery.com>

	PR c++/46868
	* parser.c (cp_parser_class_specifier): Require a closing brace
	to attempt error recovery.

2011-02-23  Jakub Jelinek  <jakub@redhat.com>

	PR c++/47833
	* pt.c (struct pending_template): Add chain_next GTY option.
	* decl.c (struct named_label_use_entry): Likewise.

2011-02-22  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/47242
	* semantics.c (build_lambda_object): Bail out if a field is
	error_mark_node.

2011-02-22  Dodji Seketeli  <dodji@redhat.com>

	PR c++/47666
	* class.c (dfs_declare_virt_assop_and_dtor)
	(declare_virt_assop_and_dtor): New static functions.
	(add_implicitly_declared_members): Use
	declare_virt_assop_and_dtor.

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

	PR c++/47207
	* decl2.c (decl_constant_var_p): A constexpr var needs an
	initializer to be constant.
	* semantics.c (cxx_eval_constant_expression): Complain about
	constexpr var used in its own initializer.
	* call.c (set_up_extended_ref_temp): Set
	DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P too.

2011-02-20  Jason Merrill  <jason@redhat.com>

	PR c++/47199
	* semantics.c (cxx_eval_call_expression): Call
	cxx_eval_constant_expression in trivial shortcut.

	PR c++/46831
	* call.c (convert_class_to_reference): Don't try to set up a
	second conv sequence for non-viable candidates.

	PR c++/47703
	* error.c (location_of): Handle non-tagged types.

	PR c++/46472
	* method.c (process_subob_fn): Instantiate constexpr templates.
	* optimize.c (maybe_clone_body): Propagate DECL_DECLARED_CONSTEXPR_P.

2011-02-20  Dodji Seketeli  <dodji@redhat.com>

	PR c++/46394
	* pt.c (tsubst_pack_expansion): do not use
	cp_tree_equal/same_type_p to detect an expansion of a parameter
	pack.

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

	PR c++/47503
	* semantics.c (cxx_eval_call_expression): Shortcut trivial copy.

2011-02-18  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/47795
	* semantics.c (finish_non_static_data_member): Early return if
	object is error_mark_node.

2011-02-18  Dodji Seketeli  <dodji@redhat.com>

	PR c++/47208
	* pt.c (do_auto_deduction): Do not mention error_mark_node in
	diagnostics.
	* semantics.c (finish_id_expression): Do not pass erroneous decl
	to decl_constant_var_p.

2011-02-17  Jakub Jelinek  <jakub@redhat.com>

	PR c++/47783
	* cvt.c (convert_from_reference): Call mark_exp_read.

2011-02-11  Dodji Seketeli  <dodji@redhat.com>

	PR c++/47172
	* pt.c (finish_call_expr): Consider a call expression that has a
	dependent "this" pointer as being dependent.  Add comments.
	(dependent_type_p, type_dependent_expression_p): Update comments.

2011-02-16  Dodji Seketeli  <dodji@redhat.com>

	PR c++/47326
	* pt.c (tsubst_copy)<case SIZEOF_EXPR>: Ensure that even pack
	expansion arguments are not evaluated.

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

	PR c++/47704
	* cp-tree.h (ENUM_FIXED_UNDERLYING_TYPE_P): Use TYPE_LANG_FLAG_5
	instead of TYPE_LANG_FLAG_3.
	* pt.c (lookup_template_class): Copy over
	ENUM_FIXED_UNDERLYING_TYPE_P.

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

	PR c++/46807
	* method.c (synthesized_method_walk): Always exit early for
	trivial fn in C++98 mode.

2011-02-14  Jason Merrill  <jason@redhat.com>

	PR c++/47482
	* parser.c (cp_parser_enumerator_definition): Call
	fold_non_dependent_expr.

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

	* decl.c (cp_make_fname_decl): Set DECL_THIS_STATIC at toplevel.
	* semantics.c (finish_fname): Only return the name if we're in
	a function.

	* decl.c (build_enumerator): Don't perform integral promotions on
	non-integral constants.

	* cvt.c (convert_to_void): Handle null op1.

	* class.c (type_has_constexpr_default_constructor): Make sure the
	caller stripped an enclosing array.
	* init.c (perform_member_init): Strip arrays before calling it.

	PR c++/47511
	* semantics.c (potential_constant_expression_1): Handle TEMPLATE_DECL.

2011-02-03  Dodji Seketeli  <dodji@redhat.com>

	PR c++/47398
	* tree.c (cp_tree_equal)<TEMPLATE_PARM_INDEX>: Take the number of
	template parameters in account.

2011-02-03  Nathan Froyd  <froydnj@codesourcery.com>

	PR c++/46890
	* parser.c (cp_parser_class_specifier): Fix setting of
	want_semicolon.

2011-01-31  Jakub Jelinek  <jakub@redhat.com>

	PR c++/47416
	* semantics.c (build_data_member_initialization): Handle
	STATEMENT_LIST always instead of just for CLEANUP_BODY.

2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* g++spec.c (lang_specific_driver) [HAVE_LD_STATIC_DYNAMIC] Use
	LD_STATIC_OPTION, LD_DYNAMIC_OPTION.

2011-01-29  Dodji Seketeli  <dodji@redhat.com>

	PR c++/47311
	* cp-tree.h (fixup_template_parms): Declare.
	* pt.c (end_template_parm_list): Do not fixup template parms here.
	(fixup_template_parms): Remove static. Fix typo in the
	comments. Remove useless code statement.
	(fixup_template_parm): For a template template parameter, fixup
	its attributes before fixing up its type.
	* parser.c
	(cp_parser_template_declaration_after_export): After parsing
	template parameters fixup their types.

2011-01-26  Jakub Jelinek  <jakub@redhat.com>

	PR c++/47476
	* semantics.c (potential_constant_expression_1): Handle
	TRUTH_XOR_EXPR.

2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>

	PR c++/43601
	* semantics.c (expand_or_defer_fn_1): Handle it.
	* decl2.c (decl_needed_p): Likewise.

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

	PR c++/47041
	* semantics.c (build_constexpr_constructor_member_initializers):
	Handle trivial copy.

2011-01-21  Jakub Jelinek  <jakub@redhat.com>

	PR c++/47388
	* semantics.c (begin_for_stmt): If -fno-for-scope, don't
	assume init must be NULL if scope is NULL.
	(begin_range_for_stmt): Likewise.

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

	PR c++/46552
	* semantics.c (cxx_eval_constant_expression): Handle OFFSET_REF.

	PR c++/46977
	* semantics.c (potential_constant_expression_1): Split out from
	potential_constant_expression.  Add want_rval parm.  Handle
	template expression forms.  Don't enforce restriction on address
	of automatic variable here.  Add a couple of diagnostics that
	had been missing.
	(require_potential_constant_expression): New entry point.
	(build_data_member_initialization, register_constexpr_fundef): Adjust.
	(maybe_constant_value): Check potential_constant_expression.
	* pt.c (fold_non_dependent_expr_sfinae): Likewise.
	* tree.c (build_vec_init_expr): Adjust.

2011-01-19  Jakub Jelinek  <jakub@redhat.com>

	PR c++/47303
	* decl2.c (finish_anon_union): Only call mangle_decl if TREE_STATIC
	or DECL_EXTERNAL.

2011-01-17  Jason Merrill  <jason@redhat.com>

	PR c++/47067
	* semantics.c (base_field_constructor_elt): New fn.
	(cxx_eval_bare_aggregate): Use it.
	(build_data_member_initialization): Leave COMPONENT_REF for
	vfield inits.

2011-01-14  Rodrigo Rivas Costa <rodrigorivascosta@gmail.com>

	* parser.c (cp_parser_range_for): Remove the "unused variable" warning
	workaround.

2011-01-15  Giovanni Funchal  <gafunchal@gmail.com>
	    Jonathan Wakely  <jwakely.gcc@gmail.com>

	PR c++/33558
	* decl.c (grokdeclarator): Reject mutable reference members.

2011-01-14  Jason Merrill  <jason@redhat.com>

	PR c++/47289
	* pt.c (coerce_template_parms): Fix error recovery.

	PR c++/46903
	* typeck2.c (check_narrowing): Only check arithmetic types.

	PR c++/46688
	* tree.c (build_vec_init_expr): Handle flexible array
	properly.

2011-01-13  Kai Tietz  <kai.tietz@onevision.com>

	PR c++/47213
	* cp-tree.h (CLASSTYPE_VISIBILITY): Use
	TYPE_MAIN_DECL instead of TYPE_NAME.
	(CLASSTYPE_VISIBILITY_SPECIFIED): Likewise.
	* decl2.c (determine_visibility): Add check
	of CLASS_TYPE_P for underlying_type.

2011-01-12  Rodrigo Rivas Costa <rodrigorivascosta@gmail.com>

	* cp-tree.h (begin_for_scope): New prototype.
	(begin_for_stmt): Update prototype.
	(begin_range_for_stmt): Update prototype.
	* init.c (build_vec_init): Update call to begin_for_stmt.
	* parser.c (cp_parser_for): New.
	(cp_parser_c_for): Add three new parameters.
	(cp_parser_range_for): Likewise. Most parsing code removed.
	(cp_parser_iteration_statement): Call cp_parser_for instead of
	cp_parser_c_for and cp_parser_range_for.
	(cp_parser_for_init_statement): Add new parameter and return type.
	(cp_parser_block_declaration): Update call to
	cp_parser_simple_declaration.
	(cp_parser_simple_declaration): Add new parameter.
	Update call to cp_parser_init_declarator.
	(cp_parser_init_declarator): Add new parameter.
	* pt.c (tsubst_expr): Update call to begin_for_stmt.
	* semantics.c (begin_for_scope): New.
	(begin_for_stmt): Add two new parameters.
	(begin_range_for_stmt): Likewise.

2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>

	* parser.c (cp_parser_objc_at_property_declaration): Improved
	error message.

2011-01-11  Dodji Seketeli  <dodji@redhat.com>

	PR debug/46955
	* cp-lang.c (get_template_innermost_arguments_folded)
	(get_template_argument_pack_elems_folded)
	(template_arg_needs_folding, fold_cplus_constants): New static
	functions.
	(LANG_HOOKS_GET_INNERMOST_GENERIC_ARGS): Set this hook to
	get_template_innermost_arguments_folded.
	(LANG_HOOKS_GET_ARGUMENT_PACK_ELEMS): Set this hook to
	get_template_argument_pack_elems_folded.

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

	PR c++/46658
	* init.c (build_new_1): Handle value-init in templates differently.

	PR c++/45520
	* tree.c (maybe_dummy_object): Check current_class_ref against
	context, not current_class_type.

2011-01-08  Nicola Pero  <nicola.pero@meta-innovation.com>

	PR objc/47078
	* parser.c (cp_parser_objc_typename): If the type is unknown, for
	error recovery purposes behave as if it was not specified so that
	the default type is used.

2011-01-07  Jakub Jelinek  <jakub@redhat.com>

	PR c++/47022
	* pt.c (tsubst_copy_and_build): Use tsubst instead of tsubst_copy
	for the second build_x_va_arg argument.

2011-01-05  Tom Tromey  <tromey@redhat.com>

	* typeck.c (cp_build_addr_expr_1): Update call to lvalue_error.
	(lvalue_or_else): Likewise.

2011-01-01  Kai Tietz  <kai.tietz@onevision.com>

	PR target/38662
	* tree.c (cxx_type_hash_eq):
	Allow METHOD_TYPE, too.

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