2012-12-28  Kai Tietz  <ktietz@redhat.com>

	* rtti.c (LONGPTR_T): New helper-macro.
	(get_pseudo_ti_init): Initialize offset_type by LONGPTR_T
	type instead of 'long' type.
	(create_tinfo_types): Use for offset/flags field LONGPTR_T
	type instead of 'long' type.

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

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

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

	PR c++/55685
	* pt.c (tsubst_copy_and_build): Don't use SIZEOF_EXPR_TYPE_P in
	templates.

	PR c++/42315
	* decl.c (maybe_deduce_size_from_array_init): Don't change the
	variable type.

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

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

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

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

2012-12-11  Marc Glisse  <marc.glisse@inria.fr>

	PR c++/53094
	* tree.c (cp_tree_equal): Handle VECTOR_CST.
	* semantics.c (cxx_eval_bare_aggregate): Protect a dereference.
	Handle VECTOR_CST.

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

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

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

	PR c++/54416
	* pt.c (maybe_process_partial_specialization): Don't accept
	definition of a specialization without the appropriate header.

	* pt.c (maybe_process_partial_specialization): Handle aliases first.

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

	PR c++/55619
	* semantics.c (finish_asm_stmt): Don't call decay_conversion
	on input operands that can be only in memory.

2012-12-10  Eric Botcazou  <ebotcazou@adacore.com>

	* Make-lang.in (cp/typeck.o): Add dependency on $(PARAMS_H).
	(cp/name-lookup.o): Likewise.

2012-12-10  Steven Bosscher  <steven@gcc.gnu.org>

	* decl2.c (cp_write_global_declarations): Return after writing a PCH.

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

	PR c++/55127
	* search.c (accessible_in_template_p): New.
	* cp-tree.h: Declare it.
	* pt.c (instantiation_dependent_scope_ref_p): New.
	(value_dependent_expression_p): Use it.
	(instantiation_dependent_r): Likewise.
	* semantics.c (finish_decltype_type): Handle SCOPE_REF.

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

2012-12-07  Aldy Hernandez  <aldyh@redhat.com>

	PR c++/55513
	* semantics.c (cxx_eval_builtin_function_call): Set non_constant_p
	after folding.

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

	* tree.c (build_aggr_init_expr): Remove tsubst_flags_t parameter.
	(build_cplus_new): Adjust.
	* cp-tree.h: Adjust declaration.
	* init.c (build_value_init): Adjust.

2012-12-07  Dodji Seketeli  <dodji@redhat.com>

	PR c++/54401
	* parser.c (cp_parser_alias_declaration): Commit to tentative
	parse when see the '=' token.  Get out if the type-id is invalid.
	Update function comment.
	(cp_parser_member_declaration): Don't try to parse a using
	declaration if we know that we expected an alias declaration; that
	is, if we see the '=' token after the identifier.

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

	PR c++/54325
	* tree.c (build_aggr_init_expr): Don't check for abstract class.
	(build_cplus_new): Check here instead.

	PR c++/55058
	* pt.c (tsubst): Keep the quals when looking through a typedef.

	PR c++/55249
	* tree.c (build_vec_init_elt): Use the type of the initializer.

	PR c++/54744
	* pt.c (resolve_typename_type): Check TYPENAME_IS_RESOLVING_P on scope.
	* init.c (expand_member_init): Check for being in a template first.
	* parser.c (cp_parser_mem_initializer_list): Only check class types
	for equivalence to the current class.

	PR c++/54913
	* semantics.c (finish_qualified_id_expr): convert_from_reference
	after building a SCOPE_REF.

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

	PR c++/54207
	* except.c (build_noexcept_spec): Avoid direct comparison
	with boolean_true_node or boolean_false_node, instead use
	operand_equal_p and/or INTEGER_CST check.
	* pt.c (tsubst_exception_specification): Likewise.
	* typeck2.c (merge_exception_specifiers): Likewise.

2012-12-06  Marc Glisse  <marc.glisse@inria.fr>

	PR c++/55573
	* semantics.c (adjust_temp_type): Handle VECTOR_CST.

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

	PR c++/54947
	* parser.c (cp_parser_initializer_list): Don't require an
	expression in [] to be constant until we know it's a C99
	designator.

	PR c++/55015
	PR c++/53821
	* semantics.c (maybe_add_lambda_conv_op): Revert earlier change.
	* decl.c (start_preparsed_function): Make local class methods comdat
	in templates, too.

	PR c++/54653
	* parser.c (cp_parser_class_head): A partial specialization scope
	counts as a template.
	* pt.c (tsubst_template_parms): Handle template template parm parms.
	(tsubst_decl) [TEMPLATE_DECL]: Handle getting a template template
	argument back.

	PR c++/55564
	* pt.c (unify) [ARRAY_TYPE]: Unify the element type before the bounds.

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

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

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

	PR c++/55542
	* pt.c (make_ith_pack_parameter_name): Return NULL if
	name is NULL.
	(tsubst_decl): Call make_ith_pack_parameter_name even if
	DECL_NAME is NULL.

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

	PR c++/53137
	* pt.c (tsubst_expr) [DECL_EXPR]: Set LAMBDA_EXPR_THIS_CAPTURE here.
	(tsubst_copy_and_build) [LAMBDA_EXPR]: And clear it here.
	(instantiate_class_template_1): Not here.

2012-11-29  Marc Glisse  <marc.glisse@inria.fr>

	PR c++/53094
	* cvt.c (ocp_convert): Call convert_to_vector.

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

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

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

	PR c++/52654
	* parser.c (cp_parser_string_literal): Add overflow_type arg.
	(cp_parser_userdef_numeric_literal): Warn on numeric overflow.

2012-11-28  Andrew Pinski  <apinski@cavium.com>

	PR bootstrap/54279
	* Make-lang.in (g++$(exeext)): Rename to
	(xg++$(exeext)): This.
	(g++-cross$(exeext)): Use xg++$(exeext) instead of g++$(exeext).
	(c++.start.encap): Likewise.
	(c++.install-common): Likewise.

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

	PR c++/55446
	* init.c (build_vec_init): Do not early return error_mark_mode
	when integer_all_onesp (maxindex).

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

	PR c++/54046
	* cp-objcp-common.h (LANG_HOOKS_BLOCK_MAY_FALLTHRU): Redefine.
	* cp-objcp-common.c (cxx_block_may_fallthru): New function.
	* cp-tree.h (cxx_block_may_fallthru): New prototype.

2012-11-23  Markus Trippelsdorf  <markus@trippelsdorf.de>

	PR c++/55418
	* method.c (implicitly_declare_fn): Properly initialize trivial_p.

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

	PR c++/55137
	* semantics.c (verify_constant): Track overflow separately.
	(reduced_constant_expression_p): Don't check it here.
	(cxx_eval_constant_expression): Check it on CSTs.
	(cxx_eval_outermost_constant_expr): Treat overflows as non-constant
	at this point, but still return the folded version.
	(potential_constant_expression_1): Don't check overflow.

	* call.c (extend_ref_init_temps_1): Recompute TREE_CONSTANT for
	the ADDR_EXPR.

2012-11-20  Diego Novillo  <dnovillo@google.com>
	    Jakub Jelinek  <jakub@redhat.com>

	* name-lookup.c: Replace all vec<T, A>() initializers
	with vNULL.
	* semantics.c: Likewise.

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

	PR c++/55368
	* parser.c (cp_parser_member_declaration): Emit an error in case
	of stray comma at end of member declaration.

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

	* class.c (one_inheriting_sig): Don't inherit base copy ctors.

	PR c++/55262
	* method.c (implicitly_declare_fn): Set DECL_PARM_INDEX on
	the parms of an inheriting ctor.

	PR c++/55261
	* class.c (add_implicitly_declared_members): Use
	lookup_fnfields_slot to get the base constructors.

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

	PR middle-end/54630
	* class.c (fixed_type_or_null_ref_ht): New variable.
	(fixed_type_or_null): Use it instead of local static ht.

2012-11-17  Diego Novillo  <dnovillo@google.com>

	Adjust for new vec API (http://gcc.gnu.org/wiki/cxx-conversion/cxx-vec)

	* Make-lang.in: Remove dependencies on vecir.h and vecprim.h everywhere.
	* call.c: Use new vec API in vec.h.
	* class.c: Likewise.
	* cp-gimplify.c: Likewise.
	* cp-tree.h: Likewise.
	* cvt.c: Likewise.
	* decl.c: Likewise.
	* decl2.c: Likewise.
	* error.c: Likewise.
	* except.c: Likewise.
	* init.c: Likewise.
	* mangle.c: Likewise.
	* method.c: Likewise.
	* name-lookup.c: Likewise.
	* name-lookup.h: Likewise.
	* parser.c: Likewise.
	* parser.h: Likewise.
	* pt.c: Likewise.
	* repo.c: Likewise.
	* rtti.c: Likewise.
	* search.c: Likewise.
	* semantics.c: Likewise.
	* tree.c: Likewise.
	* typeck.c: Likewise.
	* typeck2.c: Likewise.

2012-11-17  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* semantics.c (finish_id_expression): Tidy diagnostic message.

2012-11-16  Dodji Seketeli  <dodji@redhat.com>

	PR c++/54875
	* pt.c (lookup_template_class_1): Look at the type of the
	potential member enum of class template to determine if we are
	actually substituting into a member enum of class template.

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

	PR c++/55337
	* tree.c (cp_tree_equal) <case ALIGNOF_EXPR>: Use SIZEOF_EXPR_TYPE_P
	only on SIZEOF_EXPR.

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

	PR c++/54903
	* decl2.c (mark_used): Don't complain about auto in templates.

	PR c++/37276
	* decl.c (decls_match): Remove #ifdef around earlier fix.

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

	* class.c (finish_struct_1): Check virtual functions
	for missing ABI tags.

	PR c++/55275
	* pt.c (maybe_process_partial_specialization): Update
	DECL_SOURCE_LOCATION for new specializations.

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

	PR c++/55323
	* init.c (emit_mem_initializers): Skip arguments == error_mark_node.

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

	PR c++/11750
	* call.c (build_new_method_call_1): Check that the instance type
	and the function context are the same before setting the flag
	LOOKUP_NONVIRTUAL.

2012-11-13  Sriraman Tallam  <tmsriram@google.com>

	* class.c (mark_versions_used): Remove.
	(resolve_address_of_overloaded_function): Call target hook
	for versioned functions. Refactor to call
	get_function_versions_dispatcher.
	* decl.c (duplicate_decls): Add comments.
	* cp/call.c (get_function_version_dispatcher): Expose function.
	(mark_versions_used): Expose function.
	* cp/cp-tree.h (mark_versions_used): New declaration.
	(get_function_version_dispatcher): Ditto.

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

	PR c++/54466
	* pt.c (lookup_template_class_1): TYPE_STUB_DECL should be
	accessed on the main variant of the type.

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

	* parser.c (cp_parser_objc_class_ivars):
	Index declspecs.locations by ds_typedef rather than ds_thread.

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

	PR c++/54413
	* decl.c (grokfndecl): Adjust calls to interpret_x_suffix.

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

	PR c++/54859
	* pt.c (check_instantiated_arg): Don't complain about dependent args.

	* tree.c (cxx_attribute_table): Add abi_tag attribute.
	(check_abi_tag_redeclaration, handle_abi_tag_attribute): New.
	* class.c (find_abi_tags_r, check_abi_tags): New.
	(check_bases, check_field_decl): Call check_abi_tags.
	* decl.c (redeclaration_error_message): Call
	check_abi_tag_redeclaration.
	* mangle.c (tree_string_cmp, write_abi_tags): New.
	(write_unqualified_name): Call write_abi_tags.

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

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

	PR c++/54922
	* semantics.c (cx_check_missing_mem_inits): Handle anonymous union
	members.

2012-11-07  Florian Weimer  <fweimer@redhat.com>

	* init.c (build_new_1): Do not check for arithmetic overflow if
	inner array size is 1.

2012-11-05  Sriraman Tallam  <tmsriram@google.com>

	* class.c (add_method): Change assembler names of function versions.
	(mark_versions_used): New static function.
	(resolve_address_of_overloaded_function): Create dispatcher decl and
	return address of dispatcher instead.
	* decl.c (decls_match): Make decls unmatched for versioned
	functions.
	(duplicate_decls): Remove ambiguity for versioned functions.
	Delete versioned function data for merged decls.
	* decl2.c (check_classfn): Check attributes of versioned functions
	for match.
	* call.c (get_function_version_dispatcher): New function.
	(mark_versions_used): New static function.
	(build_over_call): Make calls to multiversioned functions
	to call the dispatcher.
	(joust): For calls to multi-versioned functions, make the most
	specialized function version win.

2012-10-31  Lawrence Crowl  <crowl@google.com>

	* decl2.c (var_finalized_p): Rename varpool_node to
	varpool_node_for_decl.
	(maybe_emit_vtables): Likewise.

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

	PR c++/54583
	* tree.c (build_cplus_array_type): Set TREE_NO_WARNING on the
	TYPE_SIZE of VLAs.

2012-10-31  Dodji Seketeli  <dodji@redhat.com>

	PR c++/54955
	* parser.c (cp_nth_tokens_can_be_std_attribute_p): Recognize the
	'Alignas' keyword as the beginning of a c++11 attribute specifier.
	Update the comment of the function.
	(cp_next_tokens_can_be_gnu_attribute_p): Update the comment of the
	function.

2012-10-29  Jonathan Wakely  <jwakely.gcc@gmail.com>

	PR c++/54930
	* typeck.c (maybe_warn_about_returning_address_of_local): Use
	OPT_Wreturn_local_addr.

2012-10-26  Jakub Jelinek  <jakub@redhat.com>

	PR c++/55081
	* typeck2.c (store_init_value): Call fold_non_dependent_expr
	and maybe_constant_init even for C++98.

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

	PR c++/54984
	* init.c (build_new): Don't turn a null *init into a pointer to
	empty vector orig_init.

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

	PR c++/53761
	* class.c (finish_struct_1): Reject aggregates decorated with
	__transparent_union__ which cannot be made transparent because
	the type of the first field has a different ABI from the class
	overall.

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

	Core 1402
	* call.c (joust): An implicitly deleted move function is
	worse than any non-deleted function.
	* method.c (process_subob_fn): No special rules for move.
	(synthesized_method_walk, implicitly_declare_fn): Likewise.
	Warn about virtual base with non-trivial move assignment.
	* cp-tree.h (struct lang_decl_fn): Remove suppress_implicit_decl.
	(FNDECL_SUPPRESS_IMPLICIT_DECL): Remove.

	* semantics.c (finish_omp_threadprivate): Call complete_type.

	* class.c (one_inherited_ctor): Warn about variadic inherited ctor.

2012-10-25  Marc Glisse  <marc.glisse@inria.fr>

	PR c++/54427
	* typeck.c (build_x_conditional_expr): Handle VEC_COND_EXPR.
	* call.c (build_conditional_expr_1): Likewise.

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

	PR c++/34892
	* parser.c (cp_parser_template_parameter): When
	cp_parser_parameter_declaration parsed a default argument don't
	see if *is_parameter_pack needs setting.

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

	PR c++/54922
	* semantics.c (cx_check_missing_mem_inits): Handle anonymous union
	members.

2012-10-23  Jakub Jelinek  <jakub@redhat.com>

	PR c++/54844
	* pt.c (tsubst_copy, tsubst_copy_and_build) <case SIZEOF_EXPR>: Use
	tsubst instead of tsubst_copy* on types.

	PR c++/54988
	* decl2.c (cplus_decl_attributes): Don't return early
	if attributes is NULL.

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

	PR c++/54501
	* decl.c (reshape_init_array_1): Avoid infinite loops.

2012-10-15  Alexandre Oliva  <aoliva@redhat.com>
	    Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/17805
	* call.c (build_new_op_1): Filter out operator functions that don't
	satisfy enum-conversion match requirements.

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

	PR c++/50080 (again)
	* parser.c (cp_parser_optional_template_keyword): When -pedantic
	and C++98 mode restore pre-Core/468 behavior.

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

	PR c++/50080
	* parser.c (cp_parser_optional_template_keyword): Implement
	Core/468, allow outside template.

2012-10-14  Jason Merrill  <jason@redhat.com>
	    Ville Voutilainen  <ville.voutilainen@gmail.com>

	Implement C++11 inheriting constructors.
	* cp-tree.h (cpp0x_warn_str): Add CPP0X_INHERITING_CTORS.
	(DECL_INHERITED_CTOR_BASE, SET_DECL_INHERITED_CTOR_BASE): New.
	(special_function_kind): Add sfk_inheriting_constructor.
	* class.c (add_method): An inheriting ctor is hidden by a
	user-declared one.
	(one_inheriting_sig, one_inherited_ctor): New.
	(add_implicitly_declared_members): Handle inheriting ctors.
	* error.c (maybe_warn_cpp0x): Handle CPP0X_INHERITING_CTORS.
	* init.c (emit_mem_initializers): Don't set LOOKUP_DEFAULTED
	for an inheriting constructor.
	* method.c (type_has_trivial_fn): Handle sfk_inheriting_constructor.
	(type_set_nontrivial_flag): Likewise.
	(add_one_base_init): Split out from...
	(do_build_copy_constructor): ...here.  Handle inheriting constructors.
	(locate_fn_flags): Handle a list of arg types.
	(synthesized_method_walk): Handle inheriting constructors.
	(maybe_explain_implicit_delete): Likewise.
	(deduce_inheriting_ctor): New.
	(implicitly_declare_fn): Handle inheriting constructors.
	* name-lookup.c (push_class_level_binding_1): An inheriting constructor
	does not declare the base's name.
	(do_class_using_decl): Allow inheriting constructors.
	* pt.c (template_parms_to_args): Split from current_template_args.
	(add_inherited_template_parms): New.
	(tsubst_decl): Handle inheriting constructors.
	* tree.c (special_function_p): Handle inheriting constructors.

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

	PR c/54381
	* semantics.c (finish_call_expr): Pass array of 3 sizeof_arg
	trees and locs (corresponding to first 3 arguments) to
	sizeof_pointer_memaccess_warning.

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

	PR c++/24449
	* decl.c (grokfndecl): When checking for ::main declarations
	use PROCESSING_REAL_TEMPLATE_DECL_P().

2012-10-12  Marc Glisse  <marc.glisse@inria.fr>

	PR c++/53055
	* call.c (build_new_op_1): Pass RO_ARROW_STAR to cp_build_indirect_ref.
	* typeck.c (cp_build_indirect_ref): Handle RO_ARROW_STAR.

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

	* cp-tree.h (DECL_THUNKS): NULL_TREE for non-virtual functions.
	(SET_DECL_THUNKS): New.
	* decl.c (duplicate_decls): Adjust.
	* method.c (make_thunk): Adjust.

	* decl.c (grokdeclarator): Set DECL_GNU_TLS_P for static data
	members, too.

2012-10-09  Dodji Seketeli  <dodji@redhat.com>

	PR c++/53540 - using fails to be equivalent to typedef
	* cp-tree.h (TYPE_TEMPLATE_INFO): For an alias that is not an
	instance of alias template, don't look for its TEMPLATE_INFO in
	its declaration.
	(alias_template_specialization_p): Take const_tree.
	* pt.c (alias_template_specialization_p): Take a const_tree.
	Don't call primary_template_instantiation_p.
	(primary_template_instantiation_p): Call
	alias_template_specialization_p.

2012-10-10  Dodji Seketeli  <dodji@redhat.com>

	* parser (cp_parser_statement): Parse c++11 attributes
	tentatively.
	(cp_parser_std_attribute_spec_seq): Do not warn too early about
	using c++11 attributes in non c++11 mode.

2012-10-10  Dehao Chen  <dehao@google.com>

	* cp-gimplify.c (cp_genericize_r): Set location for TRY expr.

2012-10-09  Lawrence Crowl  <crowl@google.com>

	* Make-lang.in (class.o): Add dependence on hash-table.h.
	(tree.o): Likewise.
	(semantics.o): Likewise.
	* class.c (fixed_type_or_null): Change to new type-safe hash table.
	* tree.c (verify_stmt_tree): Likewise.
	(verify_stmt_tree_r): Likewise.
	* semantics.c (struct nrv_data): Likewise.

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

	PR c++/54194
	* typeck.c (build_x_binary_op): Update warn_about_parentheses call.
	* parser.c (cp_parser_binary_expression): Use SET_EXPR_LOCATION
	on current.lhs.

2012-10-09  Marc Glisse  <marc.glisse@inria.fr>

	PR c++/54427
	* typeck.c (cp_build_binary_op): Handle mixed scalar-vector
	operations.
	[LSHIFT_EXPR, RSHIFT_EXPR]: Likewise.

2012-10-08  Jakub Jelinek  <jakub@redhat.com>

	PR c++/54858
	* tree.c (cp_tree_equal): Handle FIELD_DECL.

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

	Allow dynamic initialization of thread_locals.
	* decl.c: Define tls_aggregates.
	(expand_static_init): Remove sorry.  Add to tls_aggregates.
	* cp-tree.h: Declare tls_aggregates.
	* call.c (set_up_extended_ref_temp): Add to tls_aggregates.
	* decl2.c (var_needs_tls_wrapper): New.
	(var_defined_without_dynamic_init): New.
	(get_tls_init_fn, get_tls_wrapper_fn): New.
	(generate_tls_wrapper, handle_tls_init): New.
	(cp_write_global_declarations): Call handle_tls_init and
	enerate_tls_wrapper.
	* mangle.c (write_guarded_var_name): Split out from..
	(mangle_guard_variable): ...here.
	(mangle_tls_init_fn, mangle_tls_wrapper_fn): Use it.
	(decl_tls_wrapper_p): New.
	* semantics.c (finish_id_expression): Replace use of thread_local
	variable with a call to its wrapper.

	* decl.c (get_thread_atexit_node): New.
	(register_dtor_fn): Use it for TLS.

	Partial implementation of C++11 thread_local.
	* decl.c (cp_finish_decl): Remove errors about non-trivial
	initialization and destruction of TLS variables.
	(register_dtor_fn): Add sorry about TLS variables.
	(expand_static_init): Add sorry about non-local TLS variables,
	or error with __thread.
	Don't emit thread-safety guards for local TLS variables.
	(grokdeclarator): thread_local in a function implies static.
	* decl.h: Adjust prototype.
	* decl2.c (get_guard): Copy DECL_TLS_MODEL.
	* parser.c (cp_parser_set_storage_class, cp_parser_set_decl_spec_type)
	(set_and_check_decl_spec_loc): Take the token rather than the location.
	Distinguish between __thread and thread_local.
	(cp_parser_set_storage_class): Don't complain about thread_local before
	extern/static.
	(token_is__thread): New.
	* call.c (make_temporary_var_for_ref_to_temp): Handle TLS.
	* cp-tree.h (DECL_GNU_TLS_P): New.
	(cp_decl_specifier_seq): Add gnu_thread_keyword_p.

2012-10-08  Dodji Seketeli  <dodji@redhat.com>

	PR c++/53528 C++11 attribute support
	* cp-tree.h (enum cpp0x_warn_str::CPP0X_ATTRIBUTES): New member.
	(enum cp_decl_spec::ds_std_attribute): New enumerator.
	(struct cp_decl_specifier_seq::std_attributes): New field.
	(cxx_alignas_expr, warn_misplaced_attr_for_class_type): Declare
	new functions.
	(check_tag_decl): Take an extra parameter for explicit
	instantiations.
	* decl.c (warn_misplaced_attr_for_class_type): Extract from ...
	(check_tag_decl): ... here.  Add check for c++11 attributes being
	applied to an explicit instantiation.  Take an extra parameter for
	explicit instantiations.
	(grokdeclarator): Make sure a c++11 attribute after an array
	declarator appertains to the array, an attribute after a function
	declarator appertains to the function type, an attribute after a
	declarator-id appertains to the entity being declared, and an
	attribute after a pointer declarator appertain to the pointer.
	* decl2.c (is_late_template_attribute): Use get_attribute_name.
	* error.c (maybe_warn_cpp0x): Support
	CPP0X_GENERALIZED_ATTRIBUTES.
	* parser.c (cp_next_tokens_can_be_attribute_p)
	(cp_next_tokens_can_be_gnu_attribute_p)
	(cp_next_tokens_can_be_std_attribute_p)
	(cp_nth_tokens_can_be_attribute_p)
	(cp_nth_tokens_can_be_gnu_attribute_p)
	(cp_nth_tokens_can_be_std_attribute_p)
	(cp_parser_gnu_attribute_list, cp_parser_std_attribute)
	(cp_parser_std_attribute_spec, cp_parser_std_attribute_spec_seq)
	(cp_parser_attributes_opt, cp_parser_std_attribute_list): New
	static functions.
	(cp_parser_gnu_attributes_opt): Replace cp_parser_attributes_opt.
	(cp_parser_gnu_attribute_list): Replace cp_parser_attribute_list.
	(cp_parser_postfix_expression): Disallow "[[" tokens here.
	(cp_parser_label_for_labeled_statement): Use take an extra
	parameter for attributes.
	(cp_parser_block_declaration): Use
	cp_nth_tokens_can_be_std_attribute_p here.
	(cp_parser_decl_specifier_seq): Likewise.  Store C++11 attributes
	that appears in in decl specifiers in cp_decl_specifier_seq::std_attributes.
	declaration.  Emit proper warning about misplaced c++11 attributes
	for class type.
	(cp_parser_explicit_instantiation): Adjust call to check_tag_decl.
	(cp_parser_init_declarator):  Parsing attributes here is no more a
	GNU extension in c++-11.
	(cp_parser_type_specifier_seq): Use
	cp_next_tokens_can_be_attribute_p.
	(cp_parser_direct_declarator): Likewise.  Hang c++11 attributes
	following the declarator to its syntactic construct.  It'll later
	be applied to the proper appertaining entity by grokdeclarator.
	(cp_parser_ptr_operator): Likewise.
	(make_declarator): Initialize cp_declarator::std_attribute.
	(make_pointer_declarator, make_reference_declarator)
	(make_ptrmem_declarator, cp_parser_make_indirect_declarator): Take
	attributes that appertain to the pointer/reference in argument.
	(cp_parser_ptr_operator): Take an out parameter for c++11
	attributes.  Update comments.
	(cp_parser_new_declarator_opt)
	(cp_parser_conversion_declarator_opt): Adjust.
	(cp_parser_declarator): Likewise.  Handle C++11 attributes.
	Rename attributes to gnu_attribute for better legibility.
	(cp_parser_simple_declaration): Update comment.
	(cp_parser_class_specifier_1): Parse GNU attributes specifically
	(cp_parser_enum_specifier): Accept only gnu attributes after the
	specifier.
	(cp_parser_member_declaration): Don't clear attributes -- intended
	for the entity being declared -- too early because check_tag_decl
	needs them.
	(cp_parser_statement): Update comment.  Parse optional c++11
	attributes at the beginning of the relevant kind of statements and
	ignore them, for now, unless when calling
	cp_parser_label_for_labeled_statement.
	(cp_parser_label_for_labeled_statement): Take c++11 attributes
	in parameter.
	* semantics.c (potential_constant_expression_1): Likewise.
	* typeck.c (fundamental_alignment_p, cxx_alignas_expr): New public
	functions.

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

	* pt.c (fold_non_dependent_expr_sfinae): Remove static specifier.
	(tsubst_copy_and_build): Use get_target_expr_sfinae.
	* call.c (build_conditional_expr_1, convert_like_real): Likewise.
	* cvt.c (build_up_reference): Likewise.
	(ocp_convert): Use abstract_virtuals_error_sfinae.
	(build_up_reference): Propagate complain to cp_build_addr_expr.
	* decl.c (compute_array_index_type): Use fold_non_dependent_expr_sfinae.
	* cp-tree.h: Update declarations.

	* cvt.c	(build_expr_type_conversion): Tidy.

	* tree.c (stabilize_aggr_init): Change to static.

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

	PR c++/51422
	* semantics.c (is_normal_capture_proxy): Return true for
	error_mark_node as DECL_VALUE_EXPR.

2012-10-05  Jakub Jelinek  <jakub@redhat.com>

	* cp-tree.h (SIZEOF_EXPR_TYPE_P): Define.
	* tree.c (cp_tree_equal): Handle SIZEOF_EXPR with
	SIZEOF_EXPR_TYPE_P.
	* mangle.c (write_expression): Likewise.
	* cxx-pretty-print.c (pp_cxx_unary_expression): Likewise.
	* error.c (dump_expr): Likewise.
	* parser.c (cp_parser_unary_expression): For sizeof call
	cxx_sizeof_or_alignof_{type,expr} just for diagnostics and
	return SIZEOF_EXPR with the operand.
	* pt.c (tsubst_copy, tsubst_copy_and_build): For SIZEOF_EXPR,
	call cxx_sizeof_or_alignof_{type,expr} for diagnostics, but
	return SIZEOF_EXPR with tsubsted operand.
	(value_dependent_expression_p): Handle SIZEOF_EXPR with
	SIZEOF_EXPR_TYPE_P.
	(instantiation_dependent_r): Likewise.
	* call.c (null_ptr_cst_p): Call maybe_constant_value for C++98.
	* semantics.c (finish_call_expr): Call
	sizeof_pointer_memaccess_warning if needed.
	(cxx_eval_constant_expression): Handle SIZEOF_EXPR.
	(potential_constant_expression_1): Remove early exit for
	C++98.  Handle PROPERTY_REF.
	* decl.c (duplicate_decls): When redeclaring a builtin function,
	keep the merged decl builtin also if newdecl is a gnu_inline
	inline definition.
	(fold_sizeof_expr_r): New function.
	(compute_array_index_type): Fold SIZEOF_EXPRs in itype.
	* cp-gimplify.c (cp_genericize_r): Fold SIZEOF_EXPR.
	* typeck.c (cp_build_binary_op): For warn_for_sign_compare
	try harder using maybe_constant_value to get INTEGER_CSTs.

	* decl.c (stabilize_vla_size): Call pointer_set_destroy
	at the end.

2012-10-04  Arnaud Charlet  <charlet@adacore.com>
        
        * decl2.c (cp_write_global_declarations): Fix handling of
        -fdump-ada-spec*.

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

	PR c++/54777
	* semantics.c (cxx_eval_constant_expression) <case COMPOUND_EXPR>: If
	not ignoring the second operand, pass the original second operand
	and not one with stripped nops to cxx_eval_constant_expression.

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

	* decl.c (check_initializer): Set DECL_NONTRIVIALLY_INITIALIZED_P
	for a constructor call.
	(decl_jump_unsafe): So don't bother checking
	type_has_nontrivial_default_init.
	* call.c (set_up_extended_ref_temp): Set
	DECL_NONTRIVIALLY_INITIALIZED_P.

	* cp-tree.h (TYPE_FUNCTION_OR_TEMPLATE_DECL_CHECK): New.
	(DECL_FRIEND_P, DECL_ANTICIPATED): Use it.
	(TYPE_FUNCTION_OR_TEMPLATE_DECL_P): New.
	* name-lookup.c (hidden_name_p): Use it.

	* cp-tree.h (DECL_PRETTY_FUNCTION_P): Just look at the name.
	* decl.c (cp_make_fname_decl): Adjust.

2012-09-30  Sharad Singhai  <singhai@google.com>

	* decl2.c (cp_write_global_declarations): Use a different method
	to determine if the dump has ben initialized.

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

	PR c++/54738
	* decl2.c (build_offset_ref_call_from_tree): Add tsubst_flags_t
	parameter.
	* pt.c (tsubst_copy_and_build): Adjust.
	* parser.c (cp_parser_postfix_expression): Likewise.
	* cp-tree.h: Adjust declaration.

2012-09-28  Dodji Seketeli  <dodji@redhat.com>

	PR c++/54372 - unused attribute inactive on dependant entities
	* decl2.c (is_late_template_attribute): "unused" attribute is to
    	be applied at compile time.

2012-09-25  Dodji Seketeli  <dodji@redhat.com>

	PR c++/29028 - Missed unused warning on using declaration
	* decl.c (poplevel<warn_unused*>): Do not forget that some local
	bindings are represented by a TREE_LIST.

2012-09-25  Dodji Seketeli  <dodji@redhat.com>

	PR c++/53551 - -Wunused-local-typedefs misses uses
	* decl.c (make_typename_type): Record the use of typedefs.

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

	* init.c (build_new_1): Don't test TREE_CONSTANT
	of INTEGER_CST.

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

	PR c++/54526
	* parser.c (cp_parser_template_id): In C++11 mode simply accept
	X<::A>.

2012-09-25  Zhenqiang Chen <zhenqiang.chen@linaro.org>

	PR c++/50970
	* typeck.c (cp_build_binary_op): Check side effects before generating
	pfn and delta related expressions.

2012-09-24  Lawrence Crowl  <crowl@google.com>

	* init.c (build_new_1): Change to new double_int API.
	* decl.c (build_enumerator): Likewise.
	* typeck2.c (process_init_constructor_array): Likewise.
	* mangle.c (write_array_type): Likewise.

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

	PR c++/50828
	* error.c (dump_function_decl): Strip TFF_TEMPLATE_NAME from flags
	at the outset.

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

	* decl.c (get_atexit_node): Remove dead code.

	* Make-lang.in (cp/parser.o): Depend on decl.h.

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

	PR c++/52432
	* pt.c (tsubst_copy_and_build): If tf_error is not set in the complain
	argument don't call unqualified_name_lookup_error.

2012-09-19  Marc Glisse  <marc.glisse@inria.fr>

	PR c++/54581
	* semantics.c (finish_decltype_type): Make vectors not opaque.

2012-09-17  Jason Merrill  <jason@redhat.com>

	PR c++/54575
	* pt.c (instantiate_alias_template): New.
	(tsubst): Use it.
	(push_access_scope): Allow TYPE_DECL.

2012-09-14  Jason Merrill  <jason@redhat.com>

	PR c++/53661
	* typeck2.c (check_narrowing): Avoid false positives on conversion
	from enumeral type.

2012-09-14  Marc Glisse  <marc.glisse@inria.fr>

	PR c++/54427
	* typeck.c (cp_build_binary_op) [LSHIFT_EXPR, RSHIFT_EXPR, EQ_EXPR,
	NE_EXPR, LE_EXPR, GE_EXPR, LT_EXPR, GT_EXPR]: Handle VECTOR_TYPE.

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

	* decl.c (make_typename_type): Only error out if tf_error is set
	in complain.

2012-09-13  Paolo Carlini  <paolo.carlini@oracle.com>
	    Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR c++/53210
	* init.c (perform_member_init): Use OPT_Winit_self instead of
	OPT_Wuninitialized.

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

	* typeck.c (build_indirect_ref, build_function_call,
	build_function_call_vec, build_binary_op, build_unary_op,
	build_compound_expr, build_c_cast, build_modify_expr): Remove
	uses of ATTRIBUTE_UNUSED on the parameters.
	* class.c (set_linkage_according_to_type, resort_type_method_vec,
	dfs_find_final_overrider_post, empty_base_at_nonzero_offset_p):
	Likewise.
	* decl.c (local_variable_p_walkfn): Likewise.
	* except.c (wrap_cleanups_r, check_noexcept_r): Likewise.
	* error.c (find_typenames_r): Likewise.
	* tree.c (verify_stmt_tree_r, bot_replace,
	handle_java_interface_attribute, handle_com_interface_attribute,
	handle_init_priority_attribute, c_register_addr_space): Likewise.
	* cp-gimplify.c (cxx_omp_clause_default_ctor): Likewise.
	* cp-lang.c (objcp_tsubst_copy_and_build): Likewise.
	* pt.c (unify_success, unify_invalid, instantiation_dependent_r):
	Likewise.
	* semantics.c (dfs_calculate_bases_pre): Likewise.
	* decl2.c (fix_temporary_vars_context_r, clear_decl_external):
	Likewise.
	* parser.c (cp_lexer_token_at, cp_parser_omp_clause_mergeable,
	cp_parser_omp_clause_nowait, cp_parser_omp_clause_ordered,
	cp_parser_omp_clause_untied): Likewise.
	* mangle.c (write_unnamed_type_name,
	discriminator_for_string_literal): Likewise.
	* search.c (dfs_accessible_post, dfs_debug_mark): Likewise.
	* lex.c (handle_pragma_vtable, handle_pragma_unit,
	handle_pragma_interface, handle_pragma_implementation,
	handle_pragma_java_exceptions): Likewise.

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

	PR c++/53839
	* semantics.c (cxx_eval_indirect_ref): If we aren't looking for an
	address, make sure the value is constant.

	PR c++/54511
	* pt.c (tsubst_decl) [VAR_DECL]: Handle DECL_ANON_UNION_VAR_P.

	PR c++/53836
	* pt.c (value_dependent_expression_p): A TREE_LIST initializer must
	be dependent.

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

	PR c++/54541
	PR c++/54542
	* call.c (build_cxx_call): Add tsubst_flags_t parameter, use
	require_complete_type_sfinae.
	(build_op_delete_call, build_over_call): Adjust.
	* typeck.c (build_x_compound_expr_from_vec): Add tsubst_flags_t
	parameter.
	(cp_build_function_call_vec): Adjust.
	* init.c (build_new_1): Likewise.
	* rtti.c (throw_bad_cast, throw_bad_typeid, build_dynamic_cast_1):
	Likewise.
	* optimize.c (build_delete_destructor_body): Likewise.
	* cp-tree.h: Adjust declarations.

	* call.c (convert_arg_to_ellipsis): Use require_complete_type_sfinae.

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

	PR c++/54538
	PR c++/53783
	* pt.c (tsubst_copy_and_build) [LAMBDA_EXPR]: Go back to using RECUR
	for LAMBDA_EXPR_EXTRA_SCOPE except for function scope.

	PR c++/54506
	* decl.c (move_signature_fn_p): Split out from move_fn_p.
	* method.c (process_subob_fn): Use it.
	* cp-tree.h: Declare it.

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

	* semantics.c (sort_constexpr_mem_initializers): Tweak.

2012-09-09  Mark Kettenis  <kettenis@openbsd.org>

	* decl.c (reshape_init_class): Avoid dereferencing a
	past-the-end pointer.

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

	* pt.c (num_template_headers_for_class): Rework per the code
	inline in cp_parser_check_declarator_template_parameters.
	* parser.c (cp_parser_check_declarator_template_parameters):
	Use num_template_headers_for_class.

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

	PR c++/54341
	PR c++/54253
	* semantics.c (sort_constexpr_mem_initializers): New.
	(build_constexpr_constructor_member_initializers): Use it.
	(cx_check_missing_mem_inits): Skip artificial fields.
	* init.c (expand_aggr_init_1): Don't zero out a class
	with no data.

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

	PR c++/54191
	* search.c (lookup_base): Add tsubst_flags_t parameter.
	(adjust_result_of_qualified_name_lookup, check_final_overrider):
	Adjust.
	* name-lookup.c (do_class_using_decl): Adjust.
	* typeck2.c (binfo_or_else, build_scoped_ref, build_m_component_ref):
	Likewise.
	* cvt.c (cp_convert_to_pointer, convert_to_pointer_force,
	build_up_reference): Likewise.
	* rtti.c (build_dynamic_cast_1): Likewise.
	* tree.c (maybe_dummy_object): Likewise.
	* call.c (build_conditional_expr_1, build_over_call): Likewise.
	* cp-tree.h (UNIQUELY_DERIVED_FROM_P, PUBLICLY_UNIQUELY_DERIVED_P):
	Remove.
	(enum base_access_flags, ba_quiet): Remove.
	(uniquely_derived_from_p, publicly_uniquely_derived_p): Declare.
	* except.c (can_convert_eh): Adjust.
	* decl.c (grokdeclarator): Likewise.
	* typeck.c (comp_except_types, build_class_member_access_expr,
	finish_class_member_access_expr, get_member_function_from_ptrfunc,
	build_static_cast_1, get_delta_difference_1): Likewise.
	* class.c (build_base_path, convert_to_base, build_vtbl_ref_1,
	warn_about_ambiguous_bases): Likewise.
	(uniquely_derived_from_p, publicly_uniquely_derived_p): Define.

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

	PR c++/54441
	* decl.c (reshape_init_class): Handle invalid initializer for
	0-length array member.

	* error.c (dump_type_suffix): Correct handling of 0-length arrays.

	PR c++/54420
	* cp-tree.h (LAMBDANAME_P): Remove.
	(LAMBDA_TYPE_P): Check CLASSTYPE_LAMBDA_EXPR instead.
	* cp-lang.c (cxx_dwarf_name): Likewise.
	* error.c (dump_aggr_type): Likewise.
	* semantics.c (begin_lambda_type): Set CLASSTYPE_LAMBDA_EXPR sooner.

	PR c++/54198
	* decl.c (check_default_argument): Set cp_unevaluated_operand
	around call to perform_implicit_conversion_flags.

	PR c++/54437
	PR c++/51213
	* pt.c (fn_type_unification): Call coerce_template_parms before
	entering substitution context.

2012-08-31  Paolo Carlini  <paolo.carlini@oracle.com>
	    Jason Merrill  <jason@redhat.com>

	PR c++/18747
	* pt.c (check_template_variable): New.
	(num_template_headers_for_class): Split out...
	* decl.c (grokdeclarator): ...from here.
	(start_decl): Remove redundant diagnostic.
	* cp-tree.h: Declare them
	* parser.c (cp_parser_single_declaration): Call check_template_variable.

2012-08-31  Ollie Wild  <aaw@google.com>

	PR c++/54197
	* call.c (extend_ref_init_temps_1): Handle COMPOUND_EXPR trees.

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

	PR c++/50545
	PR c++/51222
	* pt.c (instantiation_dependent_r): New.
	(instantiation_dependent_expression_p): New.
	(value_dependent_expression_p): Use it.  SCOPE_REF is always dependent.
	* semantics.c (finish_decltype_type): Use it.
	* cp-tree.h: Declare it.

	* semantics.c (finish_qualified_id_expr): Handle building up a
	non-dependent SCOPE_REF here.
	(finish_id_expression): Not here.
	* error.c (dump_decl) [SCOPE_REF]: Only pass TFF_UNQUALIFIED_NAME.

	* friend.c (make_friend_class): Handle template template parameters.
	* parser.c (cp_parser_template_declaration_after_export): Likewise.
	* pt.c (tsubst_friend_class): Likewise.
	(instantiate_class_template_1): Likewise
	* decl.c (check_elaborated_type_specifier): Likewise.
	(lookup_and_check_tag): Likewise.

	* pt.c (get_class_bindings): Call coerce_template_parms.  Add
	main_tmpl parameter.
	(more_specialized_class): Add main_tmpl parameter.
	(most_specialized_class): Adjust calls.

	* decl.c (cp_finish_decl): Check for invalid multiple initializers
	even if the initializer is dependent.

	* pt.c (instantiate_template_1): Keep processing_template_decl set
	if there are dependent args.

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

	PR c++/51421
	* decl2.c (mark_used): Consistently return false after errors
	about uses before deduction of auto.
	* semantics.c (finish_id_expression): Check mark_used return
	value and return error_mark_node in case of failure.

2012-08-24  Jason Merrill  <jason@redhat.com>

	PR c++/51213 (again)
	* pt.c (deduction_tsubst_fntype): Remove.
	(fn_type_unification): Check deduction depth and call
	instantiate_template here.  Handle default argument access checks.
	(determine_specialization): Suppress access control.
	(tsubst_decl): Check for excessive deduction depth.
	(recheck_decl_substitution): Make sure access control is on.
	(type_unification_real): Don't mess with access deferring here.
	(get_bindings): Adjust for fn_type_unification return type.
	* call.c (enum rejection_reason_code): Drop rr_template_instantiation.
	(template_instantiation_rejection): Remove.
	(struct rejection_reason): Change targs to num_targs.
	(template_unification_rejection, print_z_candidate): Adjust.
	(add_template_candidate_real): Adjust for fn_type_unification change.
	* class.c (resolve_address_of_overloaded_function): Likewise.
	* cp-tree.h: Adjust declaration.

	* pt.c (tsubst_default_argument): Indicate where the default
	argument is being instantiated for.
	(tsubst_expr): Restore previous location.
	(tsubst_copy_and_build): Set and restore location.
	* call.c (build_new_method_call_1): Remember location of call.
	* semantics.c (finish_call_expr): Here too.
	* parser.c (cp_parser_omp_for_loop): Remember the location of the
	increment expression.

	* pt.c (resolve_overloaded_unification): Use coerce_template_parms
	instead of get_bindings.
	(resolve_nondeduced_context): Likewise.

	* pt.c (register_specialization): Correct argument to
	check_specialization_namespace.
	(determine_specialization): Don't consider members of
	unspecialized types.

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

	* decl.c (compute_array_index_type): Use type_dependent_expression_p.

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

	PR c++/20420
	* name-lookup.c (supplement_binding_1): Handle specially enums
	only in class templates.
	(validate_nonmember_using_decl): Enforce 7.3.3/10 about duplicate
	using declarations at function scope.

2012-08-21  Richard Guenther  <rguenther@suse.de>

	* cp-tree.h (TREE_INDIRECT_USING): Use TREE_LANG_FLAG_0 accessor.
	(ATTR_IS_DEPENDENT): Likewise.
	(ARGUMENT_PACK_INCOMPLETE_P): Use TREE_ADDRESSABLE instead of
	TREE_LANG_FLAG_0 on TREE_VECs.

2012-08-20  Florian Weimer  <fweimer@redhat.com>

	PR c++/19351
	* call.c (build_operator_new_call): Add size_check argument and
	evaluate it.
	* cp-tree.h (build_operator_new_call): Adjust declaration.
	* init.c (build_new_1): Compute array size check and apply it.

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

	PR c++/10416
	* decl.c (poplevel): Check TYPE_HAS_NONTRIVIAL_DESTRUCTOR for
	Wunused_variable too.

2012-08-20  Diego Novillo  <dnovillo@google.com>

	* decl.c (poplevel): Start TV_NAME_LOOKUP conditionally.

2012-08-20  Richard Guenther  <rguenther@suse.de>

	* name-lookup.c (store_binding_p): New predicate, split out from ...
	(store_binding): ... here.  Always store binding and require
	target vector with enough space.
	(store_bindings): Collect to store bindings and reserve space
	for them, then store them.
	(store_class_bindings): Likewise.

2012-08-19  Mikael Morin  <mikael@gcc.gnu.org>

	* Make-lang.in: Fix typo.

2012-08-17  Jakub Jelinek  <jakub@redhat.com>

	* cp-tree.def (SIZEOF_EXPR): Move to c-common.def.

2012-08-14   Diego Novillo  <dnovillo@google.com>

	Merge from cxx-conversion branch.  Re-write VEC in C++.

	* call.c (add_function_candidate): Remove const qualifier
	from call to VEC_index.

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

	* error.c (dump_expr): Handle anonymous SSA names.

2012-08-07  Steven Bosscher  <steven@gcc.gnu.org>

	* error.c (print_instantiation_context): Pretty-print a newline before
	diagnostic_flush_buffer.
	* cxx-pretty-print.c (pp_cxx_function_definition): Use
	pp_newline_and_flush instead of separate pp_newline and pp_flush.

2012-08-06  Dodji Seketeli  <dodji@redhat.com>

	Avoid crashing on erroneous static_assert usage
	* semantics.c (finish_static_assert): Don't crash on erroneous
	message or condition.

2012-08-06  Marc Glisse  <marc.glisse@inria.fr>
	    Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/54165
	* typeck.c (build_static_cast_1): Move the conversion to void case
	before the perform_direct_initialization_if_possible call.

2012-08-03  Marc Glisse  <marc.glisse@inria.fr>

	* pt.c (tsubst_copy_and_build): Handle VECTOR_TYPE like scalars.
	* cp-tree.h (scalarish_type_p): Declare.
	* tree.c (scalarish_type_p): Make non-static.

2012-08-02  Jason Merrill  <jason@redhat.com>
	    Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/51213 (again)
	* pt.c (type_unification_real): Call push_deferring_access_checks /
	pop_deferring_access_checks around the substitution of default
	template args.
	(instantiate_template_1): When the specialization returned by
	retrieve_specialization has FNDECL_HAS_ACCESS_ERRORS set and we
	are in a SFINAE context, simply return error_mark_node.
	* cp-tree.h (FNDECL_RECHECK_ACCESS_P): Rename FNDECL_HAS_ACCESS_ERRORS.

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

	* pt.c (check_default_tmpl_args): Change is_primary and is_partial
	parameters to bool type, adjust.
	(push_template_decl_real): Tidy.
	* parser.c (cp_parser_init_declarator): Adjust.
	* decl.c (redeclaration_error_message): Likewise.
	* cp-tree.h (check_default_tmpl_args): Update prototype.

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

	PR c++/53624
	* pt.c (check_default_tmpl_args): Don't check local types.

2012-07-25  Sandra Loosemore  <sandra@codesourcery.com>
	    Paul Brook  <paul@codesourcery.com>

	PR target/53633
	* decl.c (finish_function): Check targetm.warn_func_return.

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

	PR c++/54086
	* decl.c (grokdeclarator): Allow const and constexpr together.

	PR c++/54020
	* semantics.c (potential_constant_expression_1) [COND_EXPR]: Call
	maybe_constant_value.

	* cp-tree.h (tsubst_flags): Remove tf_no_access_control.
	* call.c (standard_conversion): Don't set it.
	* class.c (resolve_address_of_overloaded_function): Don't check it.
	* decl.c (check_default_argument): Call
	perform_implicit_conversion_flags.

	* pt.c (print_candidates_1): Use inform instead of error.

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

	* pt.c (convert_template_argument, tsubst): Simplify fourth argument
	to make_typename_type (complain & tf_error -> complain).

2012-07-24  Steven Bosscher  <steven@gcc.gnu.org>

	* class.c (n_vtables, n_vtable_entries, n_vtable_searches,
	n_vtable_elems, n_convert_harshness, n_compute_conversion_costs,
	n_inner_fields_searched): Always define.
	(build_primary_vtable): Convert #ifdef GATHER_STATISTICS to if-code.
	(print_class_statistics): Convert #ifdef GATHER_STATISTICS to if-code.
	* tree.c (depth_reached): Always define global.
	(cxx_print_statistics): Convert #ifdef GATHER_STATISTICS to if-code.
	* pt.c (depth_reached): Always define.
	(push_tinst_level): Convert #ifdef GATHER_STATISTICS to if-code.
	* search.c (n_fields_searched, n_calls_lookup_field,
	n_calls_lookup_field_1, n_calls_lookup_fnfields,
	n_calls_lookup_fnfields_1, n_calls_get_base_type,
	n_outer_fields_searched, n_contexts_saved): Always define.
	(lookup_field_1): Convert #ifdef GATHER_STATISTICS to if-code.
	(lookup_member): Likewise.
	(lookup_fnfields_idx_nolazy): Likewise.
	(print_search_statistics): Likewise.
	(reinit_search_statistics): Unconditionally re-set counters.
	* lex.c (retrofit_lang_decl): Convert #ifdef GATHER_STATISTICS
	to if-code.
	(cxx_dup_lang_specific_decl): Likewise.
	(copy_lang_type): Likewise.
	(cxx_make_type): Likewise.

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

	PR c++/54038
	* tree.c (build_cplus_array_type): Use build_cplus_array_type to build
	canonical array type rather than mess with its TYPE_*_VARIANT.

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

	PR c++/54026
	* typeck.c (cp_apply_type_quals_to_decl): Check COMPLETE_TYPE_P.

	PR c++/54021
	* call.c (build_cxx_call): Set optimize when folding
	__builtin_constant_p in a constexpr function.

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

	* pt.c (instantiate_decl): Don't recheck substitutions.

2012-07-18  Paolo Carlini  <paolo.carlini@oracle.com>
	    Jason Merrill  <jason@redhat.com>

	DR 1170
	PR c++/51213
	* semantics.c (perform_access_checks): Add complain parm, return bool.
	(perform_deferred_access_checks): Likewise.
	(perform_or_defer_access_check): Likewise.
	(speculative_access_check): Remove.
	* call.c (enforce_access): Add complain parm, return bool.
	* decl.c, friend.c, class.c, init.c, parser.c: Adjust callers.
	* search.c: Adjust callers.
	* cp-tree.h (TINFO_RECHECK_ACCESS_P): New macro.
	(FNDECL_RECHECK_ACCESS_P): New macro.
	* method.c (synthesized_method_walk): Stop deferring access checks.
	* pt.c (recheck_decl_substitution): New.
	(instantiate_template_1): Set and check FNDECL_RECHECK_ACCESS_P.

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

	* method.c (process_subob_fn): Make sure no_implicit_p is non-null
	before trying to store through it.

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

	PR c++/53995
	* decl.c (finish_enum_value_list): Only call
	insert_late_enum_def_into_classtype_sorted_fields in class scope.

	PR c++/53989
	* tree.c (build_cplus_array_type): Also add TYPE_CANONICAL
	to the list of variants.

	* decl.c (xref_basetypes): Complain about incomplete template base.
	* class.c (finish_struct): Adjust variants in templates, too.

	PR c++/53549
	* parser.c (cp_parser_class_head): Call xref_basetypes here.
	(cp_parser_class_specifier_1): Not here.
	* pt.c (tsubst_decl) [USING_DECL]: Check uses_template_parms
	as well as DECL_DEPENDENT_P.

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

	* cp-tree.h (struct deferred_access_check): Add location.
	* semantics.c (perform_access_checks): Use it.
	(perform_or_defer_access_check): Store it.

2012-07-16  Steven Bosscher  <steven@gcc.gnu.org>

	* dump.c (dump_stmt): Moved here from c-dump.c.
	* optimize.c: Include dumpfile.h instead of tree-dump.h.
	* class.c: Likewise.
	* decl2.c: Likewise.
	* Make-lang.in: Fix dependencies.

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

	PR c++/53953
	* method.c (synthesized_method_walk): Initialize no_implicit_p sooner.

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

	* pt.c (instantiate_decl): Check typedefs access here.
	(instantiate_template_1): Not here.

	* pt.c (deduction_tsubst_fntype): Just suppress access checking.
	(instantiate_template_1): Set DECL_TI_TEMPLATE before access checking.
	(push_deduction_access_scope, pop_deduction_access_scope): Remove.

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

	DR 1402
	* method.c (synthesized_method_walk): Replace uses of msg with diag.
	Correct handling of virtual bases with move operations.
	(process_subob_fn, walk_field_subobs): Replace uses of msg with diag.

2012-07-11  Steven Bosscher  <steven@gcc.gnu.org>

	* method.c: Do not include tree-pass.h.

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

	DR 1402
	PR c++/53733
	* cp-tree.h (FNDECL_SUPPRESS_IMPLICIT_DECL): New.
	(struct lang_decl_fn): Add suppress_implicit_decl field.
	* method.c (implicitly_declare_fn): Check it.
	(process_subob_fn): Add no_implicit_p parm.
	(walk_field_subobs, synthesized_method_walk): Likewise.
	(maybe_explain_implicit_delete): Adjust.
	(explain_implicit_non_constexpr): Adjust.

	* method.c (synthesized_method_walk): Avoid changing
	EH spec based on cleanups in other places, too.

2012-07-09  Sterling Augustine  <saugustine@google.com>

	* error.c (lang_decl_name): Use TFF_UNQUALIFIED_NAME flag.

2012-07-08  Steven Bosscher  <steven@gcc.gnu.org>

	* decl.c (cp_finish_decl): Add FIXME at add_local_decl call site.

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

	PR c++/53862
	* pt.c (tsubst_arg_types): Add "end" parameter.
	(check_undeduced_parms): Use it.

	* cp-tree.h (DECL_DECLARES_TYPE_P): Check DECL_TYPE_TEMPLATE_P.

	PR c++/53858
	* name-lookup.c (ambiguous_decl): Use DECL_TYPE_TEMPLATE_P.

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

	PR c++/53039
	* pt.c (arg_from_parm_pack_p): Go back to using same_type_p or
	cp_tree_equal.

	* cp-tree.h (TEMPLATE_PARM_NUM_SIBLINGS): Remove.
	(struct template_parm_index_s): Remove num_siblings.
	* pt.c (fixup_template_parms, fixup_template_parm_index): Remove.
	(fixup_template_type_parm_type): Remove.
	(build_template_parm_index): Remove num_siblings parm.
	(process_template_parm): Likewise.
	* parser.c (cp_parser_template_parameter_list): Adjust.
	* tree.c (cp_tree_equal): Don't compare num_siblings.
	* typeck.c (comp_template_parms_position): Likewise.

	PR c++/50852
	PR c++/53039
	* tree.c (strip_typedefs_expr): New.
	* cp-tree.h: Declare it.
	* pt.c (convert_template_argument, unify): Use it.
	* parser.c (cp_parser_template_declaration_after_export): Don't call
	fixup_template_parms.

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

	PR c++/53848
	PR c++/53524
	* decl.c (build_enumerator): Don't use build_lang_decl_loc.

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

	PR c++/53812
	* semantics.c (finish_goto_stmt): Surround computed goto argument
	with CLEANUP_POINT_EXPR if needed.

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

	PR c++/53619
	* pt.c (in_template_function): New.
	* cp-tree.h: Declare it.
	* class.c (build_base_path, resolves_to_fixed_type_p): Use it.

	PR c++/53783
	* pt.c (tsubst_copy_and_build) [LAMBDA_EXPR]: Use tsubst
	for LAMBDA_EXPR_EXTRA_SCOPE.

	PR c++/53788
	* pt.c (build_non_dependent_expr): Don't wrap a dummy object.

	PR c++/53816
	* class.c (resolves_to_fixed_type_p): Check uses_template_parms
	(current_function_decl) instead of processing_template_decl.

	PR c++/53821
	* semantics.c (maybe_add_lambda_conv_op): Don't set
	DECL_INTERFACE_KNOWN.

	PR c++/53524
	* call.c (build_conditional_expr_1): Don't warn about comparison of
	two enumerators before their enumeration is complete.
	(build_new_op_1): Call decay_conversion before warn_logical_operator.
	* decl.c (build_enumerator): Set DECL_CONTEXT of an enumerator to
	its enumeration.
	* decl2.c (mark_used): Call used_types_insert for enums.
	* semantics.c (finish_id_expression): Don't decay CONST_DECL.
	(finish_member_declaration): Don't change DECL_CONTEXT of enumerators.
	* class.c (check_field_decls): Don't change DECL_CONTEXT of enums.
	* typeck.c (convert_for_assignment): Don't decay CONST_DECL.
	(build_class_member_access_expr): Look through unscoped enums.
	* search.c (context_for_name_lookup): Look through unscoped enums.
	* pt.c (tsubst_copy_and_build): Don't decay CONST_DECL.
	(tsubst_copy): Use DECL_CONTEXT to find the enumeration.
	* tree.c (decl_linkage): Likewise.
	* cvt.c (ocp_convert): Check decayed expr for enum range warning.

2012-06-29  Steven Bosscher  <steven@gcc.gnu.org>

	* Make-lang.in: Remove tree-mudflap.o from CXX_AND_OBJCXX_OBJS.

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

	* parser.c (cp_parser_check_for_invalid_template_id): tag_type parm.
	(cp_parser_simple_type_specifier, cp_parser_class_head): Adjust.
	(cp_parser_elaborated_type_specifier): Adjust.
	* decl.c (duplicate_decls): Return error_mark_node on template
	mismatch.

	PR c++/53563
	* parser.c (cp_parser_template_id): Add tag_type parm.
	(cp_parser_template_name): Likewise.
	(cp_parser_id_expression, cp_parser_unqualified_id): Adjust.
	(cp_parser_pseudo_destructor_name, cp_parser_type_name): Adjust.
	(cp_parser_simple_type_specifier, cp_parser_class_name): Adjust.
	(cp_parser_elaborated_type_specifier, cp_parser_class_head): Adjust.

2012-06-27  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>

	PR C++/51033
	* semantics.c (constexpr_call): Fix typo in comment.
	(cxx_eval_vec_perm_expr): New.
	(cxx_eval_constant_expression): Fold VEC_PERM_EXPRs.

2012-06-26  Richard Guenther  <rguenther@suse.de>

	PR c++/53752
	* mangle.c (write_array_type): Truncate the number-of-elements
	result.

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

	PR c++/53498
	PR c++/53305
	* pt.c (tsubst_decl) [PARM_DECL]: Don't recurse into DECL_CHAIN
	if cp_unevaluated_operand is set.
	(tsubst_copy) [PARM_DECL]: Don't copy before tsubsting.

	PR c++/52988
	* typeck.c (decay_conversion): Don't discard side-effects from
	expressions of nullptr_t.

2012-06-25  Florian Weimer  <fweimer@redhat.com>

	* init.c (build_new_1): Warn about (T[N]) for variable N, and
	reject T[M][N].

	* parser.c (cp_parser_direct_new_declarator): Accept non-constant
	expressions.  Handled now in build_new_1.

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

	PR c++/53202
	* semantics.c (build_data_member_initialization): Always keep
	initializer for empty base.
	(cxx_eval_bare_aggregate): Discard it here.

	PR c++/53565
	* pt.c (tsubst_omp_for_iterator): Simplify DECL_EXPR handling.
	(tsubst_expr) [OMP_FOR]: Here, too.

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

	PR c++/53594
	* class.c (check_bases_and_members): Avoid -Wuninitialized
	diagnostics for non-static const members or references if they
	use NSDMI.

2012-06-16  Ville Voutilainen  <ville.voutilainen@gmail.com>

	* parser.c (cp_parser_direct_declarator): Move virt-specifier
	parsing after late-specified return type parsing.

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

	PR c++/53651
	* name-lookup.c (constructor_name_p): Don't try to look at the
	name of a DECLTYPE_TYPE.

2012-06-18  Lawrence Crowl  <crowl@google.com>

	* decl2.c (cp_write_global_declarations): Rename use of TV_PHASE_CGRAPH
	to TV_PHASE_OPT_GEN.

2012-06-18  Steven Bosscher  <steven@gcc.gnu.org>

	* decl.c (finish_function): Remove code conditional on VMS_TARGET.

2012-06-15  Marc Glisse  <marc.glisse@inria.fr>

	PR c++/51033
	* semantics.c (literal_type_p): Handle VECTOR_TYPE.
        (potential_constant_expression_1): Handle VEC_PERM_EXPR.
        * parser.c (cp_parser_postfix_expression): Handle RID_BUILTIN_SHUFFLE.

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

	* pt.c (tsubst_expr) [TAG_DEFN]: Instantiate local class.
	* class.c (finish_struct): Don't add a TAG_DEFN for a lambda.
	* decl2.c (finish_static_data_member_decl): Avoid redundant error.

	PR c++/53599
	* name-lookup.c (pushtag_1): Add a DECL_EXPR for a local class.
	* semantics.c (finish_cond): Build a COMPOUND_EXPR.
	* pt.c (tsubst_expr) [COMPOUND_EXPR]: Handle.
	[DECL_EXPR]: Don't call cp_finish_decl for an implicit typedef.
	Don't return the decl.

2012-06-11  Richard Guenther  <rguenther@suse.de>

	PR c++/53605
	* mangle.c (write_array_type): Use double-ints for array domain
	arithmetic.

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

	PR c++/51214
	* cp-tree.h (insert_late_enum_def_into_classtype_sorted_fields):
	Declare.
	* class.c (insert_into_classtype_sorted_fields): New.
	(add_enum_fields_to_record_type): New.
	(count_fields): Adjust the comment.
	(add_fields_to_record_type): Likewise.
	(finish_struct_1): Move the code that inserts the fields for the
	sorted case, into insert_into_classtype_sorted_fields, and call
	it.
	(insert_late_enum_def_into_classtype_sorted_fields): Define.
	* decl.c (finish_enum_value_list): Call
	insert_late_enum_def_into_classtype_sorted_fields if a late enum
	definition is encountered.

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

	PR c++/53567
	* typeck.c (cp_perform_integral_promotions): New, like
	perform_integral_promotions but also takes a tsubst_flags_t parameter.
	(pointer_diff): Add tsubst_flags_t parameter.
	(decay_conversion, cp_default_conversion, cp_build_array_ref,
	cp_build_binary_op, cp_build_unary_op, build_static_cast_1,
	build_reinterpret_cast_1, cp_build_modify_expr,
	convert_for_assignment): Adjust.
	* optimize.c (build_delete_destructor_body): Adjust.
	* init.c (expand_virtual_init, expand_default_init, build_new_1,
	build_new, build_vec_delete_1, build_vec_init, build_delete): Adjust.
	(construct_virtual_base): Adjust LOOKUP_COMPLAIN -> 0.
	* class.c (build_base_path): Adjust.
	* decl.c (compute_array_index_type, finish_destructor_body): Likewise.
	* method.c (synthesized_method_walk): Adjust flag and complain.
	* rtti.c (ifnonnull): Add tsubst_flags_t parameter.
	(build_typeid, build_dynamic_cast_1): Adjust.
	* except.c (initialize_handler_parm): Likewise.
	* typeck2.c (process_init_constructor_record): Likewise.
	* pt.c (tsubst_friend_class): Don't change flags.
	* semantics.c (finish_goto_stmt, handle_omp_for_class_iterator,
	finish_static_assert): Likewise.
	* parser.c (cp_parser_lookup_name): Just pass 0 as flags to
	lookup_name_real.
	* call.c (build_op_delete_call): Add tsubst_flags_t parameter.
	(convert_like_real, convert_arg_to_ellipsis, convert_for_arg_passing):
	Adjust.
	(standard_conversion): Adjust LOOKUP_COMPLAIN -> 0.
	(implicit_conversion): Mask out tf_error with a FIXME.
	(build_user_type_conversion_1, build_new_op_1, build_over_call): Use
	complain & tf_error instead of flags & LOOKUP_COMPLAIN.
	* cvt.c (cp_convert_to_pointer, convert_to_pointer_force,
	build_up_reference, convert_to_reference, cp_convert,
	cp_convert_and_check, ocp_convert, convert_force): Add tsubst_flags_t
	parameter.
	(convert_to_reference, ocp_convert): Use complain & tf_error instead
	of flags & LOOKUP_COMPLAIN.
	(convert_force): Adjust LOOKUP_COMPLAIN -> 0.
	* name-lookup.c (identifier_type_value_1, lookup_qualified_name,
	lookup_name_real, lookup_function_nonclass, lookup_name,
	lookup_name_prefer_type): Adjust LOOKUP_COMPLAIN -> 0.
	* cp-tree.h: Adjust prototypes; remove LOOKUP_COMPLAIN.

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

	* decl.c: Do not include output.h.
	(start_decl): Remove code for flag_conserve_space.

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

	PR c++/52841
	* parser.c (cp_parser_alias_declaration): Return earlier
	if an error occured.

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

	PR c++/53524
	* call.c (build_conditional_expr_1): Use OPT_Wenum_compare
	to control enumeral mismatch in conditional expression too.

2012-06-04   Sterling Augustine  <saugustine@google.com>

	* cp-tree.h: Declare decl_as_dwarf_string, lang_decl_dwarf_name.
	* cp-lang.c (cxx_dwarf_name): Call them.

2012-06-04  Steven Bosscher  <steven@gcc.gnu.org>

	* semantics.c: Do not include output.h.
	* decl2.c: Likewise.
	* friend.c: Likewise.
	* typeck.c: Likewise.
	* typeck2.c: Likewise.
	* Make-lang.in: Fix dependencies.

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

	PR c++/52973
	* parser.c (cp_parser_class_head): Apply attributes here.
	* semantics.c (begin_class_definition): Not here.
	* cp-tree.h: Adjust.

	PR c++/52725
	* parser.c (cp_parser_binary_expression): Bail early if we're parsing
	tentatively and the LHS has a parse error.

	PR c++/53137
	* pt.c (instantiate_class_template_1): Set LAMBDA_EXPR_THIS_CAPTURE.
	(instantiate_decl): Don't push_to_top_level for local class methods.
	(instantiate_class_template_1): Or for local classes.

	PR c++/53484
	* pt.c (do_auto_deduction): Don't try to deduce from a
	type-dependent initializer.

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

	PR c++/26155
	* name-lookup.c (push_namespace): When error recovery is
	impossible just error out in duplicate_decls.

2012-05-31  Steven Bosscher  <steven@gcc.gnu.org>

	* call.c: Do not include output.h.
	* class.c: Likewise.
	* except.c: Likewise.
	* friend.c: Likewise.
	* init.c: Likewise.
	* lex.c: Likewise.
	* method.c: Likewise.
	* parser.c: Likewise.
	* pt.c: Likewise.
	* rtti.c: Likewise.
	* search.c: Likewise.

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

	PR c++/53356
	* tree.c (stabilize_init): Handle stabilizing a TARGET_EXPR
	representing a bitwise copy of a glvalue.

	* tree.c (stabilize_expr): Tweak logic.

	PR c++/53356
	* tree.c (stabilize_init): Side effects make the init unstable.

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

	PR c++/53503
	* semantics.c (potential_constant_expression_1): Handle LTGT_EXPR.

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

	PR c++/53491
	* tree.c (stabilize_expr): Handle exp of void type.

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

	PR c++/53220
	* call.c (convert_like_real) [ck_list]: Take array address directly.
	* typeck.c (decay_conversion): Reject decay of an array compound
	literal.

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

	PR c++/32054
	* parser.c (cp_parser_member_declaration): A storage class is not
	allowed in a declaration of an anonymous aggregate in a class scope.

2012-05-24  Uros Bizjak  <ubizjak@gmail.com>

	PR obj-c++/53441
	* decl.c (grokdeclarator): Check that current_class_type is non-NULL
	before calling constructor_name_p.

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

	PR c++/32080
	* parser.c (cp_parser_ctor_initializer_opt_and_function_body,
	cp_parser_function_body): Add a bool parameter, true when parsing
	a function-try-block.
	(cp_parser_function_try_block): Pass true to the above.
	(cp_parser_function_definition_after_declarator,
	cp_parser_function_transaction): Adjust.

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

	PR c++/29185
	* decl2.c (delete_sanity): Extend 'deleting array' warning to
	any array type.

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

	PR c++/51184
	* decl.c (grokdeclarator): Diagnose functions returning abstract
	class types as TYPENAME.
	* cp-tree.h (ABSTRACT_CLASS_TYPE_P): Add.
	* except.c (is_admissible_throw_operand_or_catch_parameter): Use it.
	* pt.c (tsubst): Likewise.
	* semantics.c (trait_expr_value): Likewise.

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

	PR c++/40821
	* parser.c (cp_parser_attributes_opt): Enforce error checking of
	unbalanced parentheses in the presence of tentative parsing.

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

	PR c++/39681
	* parser.c (cp_parser_new_type_id): Early return error_mark_node
	if the cp_parser_type_specifier_seq call has type_specifier_seq.type
	error_mark_node; tidy.
	(cp_parser_new_expression): Always initialize nelts to NULL_TREE to
	avoid uninitialized warnings.
	(cp_parser_init_declarator, cp_parser_late_parse_one_default_arg):
	Call cp_parser_skip_to_end_of_statement if cp_parser_initializer
	returns error_mark_node.

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

	PR c++/53371
	* except.c (is_admissible_throw_operand): Rename to
	is_admissible_throw_operand_or_catch_parameter and handle
	catch parameter too.
	(expand_start_catch_block): Use it.
	(build_throw): Adjust.

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

	PR c++/44516
	* typeck.c (build_x_array_ref, build_x_conditional_expr,
	build_x_compound_expr, build_x_modify_expr): Add location_t parameter.
	(finish_class_member_access_expr, build_x_indirect_ref,
	build_x_binary_op, build_x_compound_expr_from_list,
	build_x_compound_expr_from_vec): Adjust callers.
	* tree.c (build_min_nt_loc): New.
	(build_min_nt): Remove.
	* typeck2.c (build_x_arrow): Adjust callers.
	* pt.c (tsubst_qualified_id, tsubst_omp_for_iterator,
	tsubst_copy_and_build): Likewise.
	* semantics.c (finish_mem_initializers, handle_omp_for_class_iterator,
	 finish_omp_atomic): Likewise.
	* decl2.c (grok_array_decl, build_anon_union_vars): Adjust.
	* parser.c (cp_parser_question_colon_clause,
	cp_parser_assignment_expression, cp_parser_expression,
	cp_parser_template_id, cp_parser_omp_for_loop): Likewise.
	* cp-tree.h: Update.

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

	PR preprocessor/7263
	* cp-tree.h (enum cp_decl_spec): Add new enumerators to cover all
	the possible declarator specifiers so far.
	(struct cp_decl_specifier_seq::locations): Declare new member.
	(cp_decl_specifier_seq::{specs, type_location}): Remove.
	(decl_spec_seq_has_spec_p): Declare new function.
	* parser.c (cp_parser_check_decl_spec): Remove.
	(set_and_check_decl_spec_loc): Define new static function.
	(decl_spec_seq_has_spec_p): Define new public function.
	(cp_parser_decl_specifier_seq, cp_parser_function_specifier_opt)
	(cp_parser_type_specifier, cp_parser_simple_type_specifier)
	(cp_parser_set_storage_class, cp_parser_set_decl_spec_type)
	(cp_parser_alias_declaration): Set the locations for each
	declspec, using set_and_check_decl_spec_loc.
	(cp_parser_explicit_instantiation, cp_parser_init_declarator)
	(cp_parser_member_declaration, cp_parser_init_declarator): Use the
	new declspec location for specifiers.  Use the new
	decl_spec_seq_has_spec_p.
	(cp_parser_type_specifier_seq): Use the new
	set_and_check_decl_spec_loc.  Stop using
	cp_parser_check_decl_spec.  Use the new decl_spec_seq_has_spec_p.
	(, cp_parser_init_declarator): Use the new
	set_and_check_decl_spec_loc.
	(cp_parser_single_declaration, cp_parser_friend_p)
	(cp_parser_objc_class_ivars, cp_parser_objc_struct_declaration):
	Use the new decl_spec_seq_has_spec_p.
	* decl.c (check_tag_decl): Use new decl_spec_seq_has_spec_p.  Use
	the more precise ds_redefined_builtin_type_spec location for
	diagnostics about re-declaring C++ built-in types.
	(start_decl, grokvardecl, grokdeclarator): Use the new
	decl_spec_seq_has_spec_p.

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

	PR c++/11856
	* pt.c (tsubst_copy_and_build): Increase / decrease
	c_inhibit_evaluation_warnings around build_x_binary_op call.

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

	* cp-tree.h (TYPE_PTRMEM_P): Rename to TYPE_PTRDATAMEM_P.
	(TYPE_PTR_TO_MEMBER_P): Rename to TYPE_PTRMEM_P.
	(TYPE_PTR_OR_PTRMEM_P): Add.
	* typeck.c (composite_pointer_type_r, composite_pointer_type,
	common_pointer_type, cp_build_indirect_ref, cp_build_binary_op,
	cp_truthvalue_conversion, convert_ptrmem, build_static_cast_1,
	build_reinterpret_cast_1, build_const_cast_1, comp_ptr_ttypes_real,
	casts_away_constness_r, casts_away_constness): Adjust.
	* init.c (build_zero_init_1): Adjust.
	* class.c (check_field_decls): Likewise.
	* decl.c (check_default_argument): Likewise.
	* rtti.c (target_incomplete_p): Likewise.
	* tree.c (zero_init_p): Likewise.
	* cxx-pretty-print.c (pp_cxx_ptr_operator,
	pp_cxx_abstract_declarator): Likewise.
	* typeck2.c (build_m_component_ref): Likewise.
	* pt.c (convert_nontype_argument, invalid_nontype_parm_type_p,
	dependent_type_p_r): Likewise.
	* call.c (null_member_pointer_value_p, standard_conversion,
	add_builtin_candidate, build_conditional_expr_1, compare_ics):
	Likewise.
	* cp-objcp-common.c (cp_var_mod_type_p): Likewise.
	* cvt.c (cp_convert_to_pointer, ocp_convert,
	perform_qualification_conversions): Likewise.
	* mangle.c (write_type): Likewise.
	* name-lookup.c (arg_assoc_type): Likewise.

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

	* parser.c (struct cp_parser_expression_stack_entry): Add location_t
	field.
	(cp_parser_binary_expression): Rework to always update at the same
	time tree_type and loc.
	* call.c (print_z_candidate): Add location_t parameter.
	(print_z_candidates, convert_like_real, joust): Adjust.

2012-05-11  Alexandre Oliva  <aoliva@redhat.com>

	PR c++/53209
	* pt.c (tsubst_decl): Bail out if argvec is error_mark_node.

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

	PR c++/53305
	* pt.c (tsubst_copy: case PARM_DECL): Return error_mark_node if
	tsubst_decl returns NULL_TREE.
	* cxx-pretty-print.c (pp_cxx_simple_type_specifier): Handle
	BOUND_TEMPLATE_TEMPLATE_PARM.

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

	PR c++/53158
	* cvt.c (ocp_convert): Error out early for void -> bool conversions.
	* typeck.c (decay_conversion): Use error_at.
	* call.c (build_integral_nontype_arg_conv, convert_like_real,
	convert_arg_to_ellipsis, perform_implicit_conversion_flags,
	initialize_reference): Likewise.
	* cvt.c (warn_ref_binding): Add location_t parameter.
	(cp_convert_to_pointer, convert_to_reference, ocp_convert,
	convert_to_void, ): Use error_at and warning_at.

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

	PR c++/53301
	* decl.c (check_default_argument): Fix typo (POINTER_TYPE_P
	instead of TYPE_PTR_P) in zero-as-null-pointer-constant warning.

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

	PR c++/53152
	* call.c (op_error, build_new_op_1, build_new_op): Add location_t
	parameter.
	(build_conditional_expr_1): Adjust.
	* typeck.c (build_x_indirect_ref, build_x_binary_op,
	build_x_unary_op): Add location_t parameter.
	(rationalize_conditional_expr, build_x_array_ref,
	build_x_compound_expr, cp_build_modify_expr, build_x_modify_expr):
	Adjust.
	* typeck2.c (build_x_arrow): Add location_t parameter.
	* semantics.c (finish_unary_op_expr): Likewise.
	(finish_increment_expr, handle_omp_for_class_iterator): Adjust.
	* decl2.c (grok_array_decl): Add location_t parameter.
	* parser.c (cp_parser_postfix_open_square_expression,
	cp_parser_postfix_dot_deref_expression, cp_parser_unary_expression,
	cp_parser_binary_expression, cp_parser_builtin_offsetof,
	do_range_for_auto_deduction, cp_convert_range_for,
	cp_parser_template_argument, cp_parser_omp_for_cond): Pass the
	location, adjust.
	* pt.c (tsubst_copy_and_build): Adjust.
	* tree.c (maybe_dummy_object): Likewise.
	* cp-tree.h: Update declarations.

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

	* semantics.c (cxx_eval_constant_expression, case CONVERT_EXPR): Tidy.

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

	PR c++/53166
	* pt.c (instantiate_class_template_1): Increase / decrease
	c_inhibit_evaluation_warnings around the tsubst_expr call
	for STATIC_ASSERT_CONDITION.
	(tsubst_expr, case STATIC_ASSERT): Likewise.
	* typeck.c (cp_build_binary_op, case EQ_EXPR/NE_EXPR): Check
	c_inhibit_evaluation_warnings in the OPT_Waddress warnings.

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

	PR c++/53186
	* call.c (build_over_call): Handle final member functions
	and class types.
	(build_new_method_call_1): Do not handle here.

2012-05-02  Richard Guenther  <rguenther@suse.de>

	* decl.c (grokdeclarator): Properly check for sizes that
	cover more than half of the address-space.

2012-04-30  Marc Glisse  <marc.glisse@inria.fr>

	PR c++/51033
	* typeck.c (cp_build_array_ref): Handle VECTOR_TYPE.
	* decl2.c (grok_array_decl): Likewise.

	PR c++/51314
	* parser.c (cp_parser_sizeof_operand): Require parentheses for
	sizeof...

2012-04-30  Dodji Seketeli  <dodji@redhat.com>

	Fix location for static class members
	* decl.c (grokdeclarator): Use the location carried by the
	declarator for the DECL of the static class member.

	Fix va_arg type location
	* cp-tree.h (build_x_va_arg): Take an additional location
	parameter.
	* call.c (build_x_va_arg): Take a loc parameter for the location
	of the type of the va_arg expression.
	* parser.c (cp_parser_primary_expression): Pass the type of the
	type in the va_arg expression to build_x_va_arg.
	* pt.c (tsubst_copy): Adjust calls to build_x_va_arg.

	Make conversion warnings work on NULL with -ftrack-macro-expansion
	* call.c (conversion_null_warnings): Use the new
	expansion_point_location_if_in_system_header.
	* cvt.c (build_expr_type_conversion): Likewise.
	* typeck.c (cp_build_binary_op): Likewise.

2012-04-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* typeck.c (convert_for_assignment):  Replace
	Wmissing-format-attribute with Wsuggest-attribute=format.
	* call.c (convert_for_arg_passing): Likewise.

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

	PR c++/53096
	* class.c (check_bases_and_members): Implement core/1333, do not
	disallow defaulted in the class body non-const ref special members.

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

	PR c++/52363
	* call.c (tourney, perform_overload_resolution,
	build_operator_new_call, build_user_type_conversion_1,
	build_user_type_conversion, perform_overload_resolution,
	add_template_candidate, add_template_candidate_real,
	add_template_conv_candidate, add_builtin_candidates,
	add_builtin_candidate, build_builtin_candidate,
	add_conv_candidate, add_function_candidate, implicit_conversion,
	reference_binding, build_list_conv, conditional_conversion,
	add_candidates, can_convert_array, build_aggr_conv,
	build_array_conv, build_complex_conv, conditional_conversion):
	Add tsubst_flags_t parameter.
	(joust): Likewise, use it to handle SFINAE as if pedantic.
	(add_list_candidates, build_integral_nontype_arg_conv,
	perform_overload_resolution, build_new_function_call,
	build_operator_new_call, build_op_call_1,
	build_conditional_expr_1, build_new_op_1, convert_like_real,
	convert_arg_to_ellipsis, convert_default_arg,
	convert_for_arg_passing, build_over_call,
	build_new_method_call_1, can_convert_arg, can_convert_arg_bad,
	perform_implicit_conversion_flags,
	perform_direct_initialization_if_possible,
	initialize_reference): Adjust.
	* typeck.c (casts_away_constness, casts_away_constness_r):
	Add tsubst_flags_t parameter.
	(convert_arguments, check_for_casting_away_constness,
	build_static_cast_1, build_ptrmemfunc, convert_for_assignment):
	Adjust.
	* decl.c (reshape_init_r, check_default_argument): Likewise.
	* cp-gimplify.c (cxx_omp_clause_apply_fn): Likewise.
	* pt.c (convert_nontype_argument, check_non_deducible_conversion):
	Likewise.
	* init.c (build_new_1): Likewise.
	* cvt.c (convert_to_reference, ocp_convert, build_type_conversion,
	build_expr_type_conversion, ): Likewise.
	* search.c (check_final_overrider): Likewise.
	* cp-tree.h (build_user_type_conversion,
	build_operator_new_call, can_convert, can_convert_arg,
	can_convert_arg_bad, convert_default_arg,
	convert_arg_to_ellipsis, convert_for_arg_passing):
	Adjust declaration.

2012-04-22  Jan Hubicka  <jh@suse.cz>

	* decl2.c (maybe_make_one_only): Mark keyed COMDATs as USED so they
	gets finalized.

2012-04-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR c/44774
	* typeck.c (composite_pointer_type): Likewise.
	(cxx_sizeof_or_alignof_type): Likewise.
	(cp_build_array_ref): Likewise.
	(cp_build_function_call_vec): Likewise.
	(cp_build_addr_expr_1): Likewise.
	(convert_member_func_to_ptr): Likewise.
	* decl.c (check_tag_decl): Likewise.
	(check_static_variable_definition): Likewise.
	(compute_array_index_type): Likewise.
	(create_array_type_for_decl): Likewise.
	(grokdeclarator): Likewise.
	(grok_op_properties): Likewise.
	* error.c (maybe_warn_cpp0x): Likewise.
	* pt.c (maybe_process_partial_specialization): Likewise.
	(convert_template_argument): Likewise.
	(do_decl_instantiation): Likewise.
	(do_type_instantiation): Likewise.
	* parser.c (cp_parser_primary_expression): Likewise.
	(cp_parser_postfix_expression): Likewise.
	(cp_parser_unary_expression): Likewise.
	(cp_parser_question_colon_clause): Likewise.
	(cp_parser_lambda_introducer): Likewise.
	(cp_parser_lambda_declarator_opt): Likewise.
	(cp_parser_compound_statement): Likewise.
	(cp_parser_jump_statement): Likewise.
	(cp_parser_declaration_seq_opt): Likewise.
	(cp_parser_enum_specifier): Likewise.
	(cp_parser_enumerator_list): Likewise.
	(cp_parser_initializer_list): Likewise.
	(cp_parser_member_declaration): Likewise.
	* call.c (build_conditional_expr_1): Likewise.
	* friend.c (make_friend_class): Likewise.
	* name-lookup.c (pushdecl_maybe_friend_1): Likewise.

2012-04-21  Jan Hubicka  <jh@suse.cz>

	* method.c (make_alias_for): Do not set TREE_SYMBOL_REFERENCED.
	* decl2.c (mark_needed): Likewise.
	(decl_needed_p): Do not test TREE_SYMBOL_REFERENCED.

	* decl2.c (cxx_callgraph_analyze_expr): Remove.
	* cp-objcp-common.h (LANG_HOOKS_CALLGRAPH_ANALYZE_EXPR): Remove.
	* cp-tree.h (cxx_callgraph_analyze_expr): Remove.

2012-04-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR 35441
	* typeck.c (cp_build_function_call_vec): Do not pretty-print
	expressions when caret is enabled.

2012-04-20  Jan Hubicka  <jh@suse.cz>

	PR target/53042
	* decl2.c (maybe_emit_vtables): Do not initialize same_comdat_group
	list when target has no support for it.

2012-04-20  Michael Matz  <matz@suse.de>

	* error.c (pedwarn_cxx98): Move va_end call after user
	of the va_list.

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

	PR c++/52422
	* cp-tree.h (build_addr_func, decay_conversion,
	get_member_function_from_ptrfunc,
	build_m_component_ref, convert_member_func_to_ptr):
	Add tsubst_flags_t parameter.
	* typeck.c (cp_default_conversion): Add.
	(decay_conversion, default_conversion,
	get_member_function_from_ptrfunc, convert_member_func_to_ptr):
	Add tsubst_flags_t parameter and use it throughout.
	(cp_build_indirect_ref, cp_build_array_ref,
	cp_build_function_call_vec, convert_arguments, build_x_binary_op,
	cp_build_binary_op, cp_build_unary_op, build_reinterpret_cast_1,
	build_const_cast_1, expand_ptrmemfunc_cst,
	convert_for_initialization): Adjust.
	* init.c (build_vec_init): Adjust.
	* decl.c (grok_reference_init, get_atexit_node): Likewise.
	* rtti.c (build_dynamic_cast_1, tinfo_base_init): Likewise.
	* except.c (build_throw): Likewise.
	* typeck2.c (build_x_arrow): Likewise.
	(build_m_component_ref): Add tsubst_flags_t parameter and
	use it throughout.
	* pt.c (convert_nontype_argument): Adjust.
	* semantics.c (finish_asm_stmt, maybe_add_lambda_conv_op): Likewise.
	* decl2.c (build_offset_ref_call_from_tree): Likewise.
	* call.c (build_addr_func): Add tsubst_flags_t parameter and
	use it throughout.
	(build_call_a, build_conditional_expr_1, build_new_op_1,
	convert_like_real, convert_arg_to_ellipsis, build_over_call,
	build_special_member_call): Adjust.
	* cvt.c (cp_convert_to_pointer, force_rvalue,
	build_expr_type_conversion): Likewise.

2012-04-17  Tom de Vries  <tom@codesourcery.com>

	* cp-gimplify.c (begin_bc_block): Add location parameter and use as
	location argument to create_artificial_label.
	(finish_bc_block): Change return type to void.  Remove body_seq
	parameter, and add block parameter.  Append label to STMT_LIST and
	return in block.
	(gimplify_cp_loop, gimplify_for_stmt, gimplify_while_stmt)
	(gimplify_do_stmt, gimplify_switch_stmt): Remove function.
	(genericize_cp_loop, genericize_for_stmt, genericize_while_stmt)
	(genericize_do_stmt, genericize_switch_stmt, genericize_continue_stmt)
	(genericize_break_stmt, genericize_omp_for_stmt): New function.
	(cp_gimplify_omp_for): Remove bc_continue processing.
	(cp_gimplify_expr): Genericize VEC_INIT_EXPR.
	(cp_gimplify_expr): Mark FOR_STMT, WHILE_STMT, DO_STMT, SWITCH_STMT,
	CONTINUE_STMT, and BREAK_STMT as unreachable.
	(cp_genericize_r): Genericize FOR_STMT, WHILE_STMT, DO_STMT,
	SWITCH_STMT, CONTINUE_STMT, BREAK_STMT and OMP_FOR.
	(cp_genericize_tree): New function, factored out of ...
	(cp_genericize): ... this function.

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

	PR c++/52599
	* semantics.c (build_constexpr_constructor_member_initializers):
	Check for function-try-block as function-body.

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

	PR c++/53003
	* parser.c (cp_parser_member_declaration): Check that
	initializer_token_start is non null before dereferencing it.

2012-04-16  Jason Merrill  <jason@redhat.com>

	PR c++/38543
	* pt.c (determine_specialization): Instead of comparing the number
	of parms, check that tsubst gives the right answer.

	PR c++/52008
	* pt.c (process_partial_specialization): Complain about a partial
	specialization with fewer args than primary template parms.

	PR c++/50830
	* pt.c (convert_template_argument): Handle template template
	argument packs.

	PR c++/50303
	* pt.c (tsubst_pack_expansion): Use tsubst_expr for template
	template parameters.

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

	PR c++/49152
	* call.c (op_error): Print types; when flag_diagnostics_show_caret
	is false print expressions too.
	(op_error_string): Add.

2012-04-16  Jason Merrill  <jason@redhat.com>

	PR c++/51148
	* friend.c (make_friend_class): Call check_for_bare_parameter_packs.

2012-04-16  Jan Hubicka  <jh@suse.cz>

	* decl2.c (collect_candidates_for_java_method_alias): Use FOR_EACH
        walkers to walk cgraph and varpool.

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

	PR c++/47220
	* pt.c (coerce_template_parameter_pack): Check for error_mark_node.

	PR c++/52292
	PR c++/52380
	* pt.c (coerce_template_parms): Even if we aren't converting we
	want to expand argument packs.

	PR c++/52706
	* mangle.c (write_type): nullptr_t is a builtin type.

2012-04-14  Jan Hubicka  <jh@suse.cz>

	* tree.c: Update field referenced for new cgraph/varpool layout.
	* decl2.c: Likewise.

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

	PR c++/52824
	* pt.c (any_pack_expanson_args_p): New.
	(coerce_template_parms): Use it.

	PR c++/52905
	* call.c (joust): Handle comparing list and non-list ctors.

	PR c++/52915
	* decl2.c (finish_anon_union): Use cp_finish_decl.
	* error.c (dump_function_name): Avoid showing anonymous "name".

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

	PR c++/52465
	* parser.c (cp_parser_class_name): Call strip_using_decl and
	return the target decl.
	* name-lookup.c (strip_using_decl): Returns NULL_TREE if the decl
	to be stripped is NULL_TREE.
	(qualify_lookup): Call strip_using_decl and perform some checks on
	the target decl.

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

	PR debug/45088
	* decl.c (grokdeclarator): Strip the injected-class-name typedef
	if we are building a declaration or compound type.

	PR c++/52906
	* decl.c (check_tag_decl): Don't complain about attributes if we
	don't even have a type.

2012-04-10  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* cvt.c (convert_to_void): Update comment.

2012-04-05  Jason Merrill  <jason@redhat.com>

	PR c++/52596
	* semantics.c (finish_non_static_data_member): In templates, pass
	the decl to build_qualified_name.
	* tree.c (lvalue_kind) [SCOPE_REF]: Handle FIELD_DECL.

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

	PR c++/52845
	* decl.c (finish_function): Update fntype after deducing return type.

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

	PR c++/52796
	* pt.c (tsubst_initializer_list): A pack expansion with no elements
	means value-initialization.

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

	PR c++/50043
	* class.c (deduce_noexcept_on_destructor,
	deduce_noexcept_on_destructors): New.
	(check_bases_and_members): Call the latter.
	* decl.c (grokfndecl): Call the former.
	* method.c (implicitly_declare_fn): Not static.
	* cp-tree.h (deduce_noexcept_on_destructor, implicitly_declare_fn):
	Declare

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

	PR c++/52718
	* decl.c (check_default_argument): With -Wzero-as-null-pointer-constant
	warn for a zero as null pointer constant default argument.

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

	PR c++/52685
	* tree.c (copy_binfo): Handle BINFO_DEPENDENT_BASE_P.

2012-03-29  Jakub Jelinek  <jakub@redhat.com>

	PR c++/52759
	* decl.c (start_decl): Don't call maybe_apply_pragma_weak
	if processing_template_decl.

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

	PR c++/52743
	* call.c (compare_ics): Handle ck_aggr like ck_list.

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

	PR c++/52746
	* typeck.c (lookup_destructor): Clear BASELINK_QUALIFIED_P if
	we didn't get an explicit scope.
	* pt.c (tsubst_baselink): Likewise.

2012-03-28  Richard Guenther  <rguenther@suse.de>

	* typeck2.c (process_init_constructor_array): Use the proper
	type for computing the array length.

2012-03-27  Meador Inge  <meadori@codesourcery.com>

	PR c++/52672
	* semantics.c (cxx_fold_indirect_ref): Don't attempt to fold
	stripped child trees that are not pointer types.

2012-03-21  Jason Merrill  <jason@redhat.com>

	Implement return type deduction for normal functions with -std=c++1y.
	* cp-tree.h (FNDECL_USED_AUTO): New macro.
	(LAMBDA_EXPR_DEDUCE_RETURN_TYPE_P): Remove.
	(dependent_lambda_return_type_node): Remove.
	(CPTI_DEPENDENT_LAMBDA_RETURN_TYPE): Remove.
	(struct language_function): Add x_auto_return_pattern field.
	(current_function_auto_return_pattern): New.
	(enum tsubst_flags): Add tf_partial.
	* decl.c (decls_match): Handle auto return comparison.
	(duplicate_decls): Adjust error message for auto return.
	(cxx_init_decl_processing): Remove dependent_lambda_return_type_node.
	(cp_finish_decl): Don't do auto deduction for functions.
	(grokdeclarator): Allow auto return without trailing return type in
	C++1y mode.
	(check_function_type): Defer checking of deduced return type.
	(start_preparsed_function): Set current_function_auto_return_pattern.
	(finish_function): Set deduced return type to void if not previously
	deduced.
	* decl2.c (change_return_type): Handle error_mark_node.
	(mark_used): Always instantiate functions with deduced return type.
	Complain about use if deduction isn't done.
	* parser.c (cp_parser_lambda_declarator_opt): Use 'auto' for
	initial return type.
	(cp_parser_lambda_body): Don't deduce return type in a template.
	(cp_parser_conversion_type_id): Allow auto in C++1y.
	* pt.c (instantiate_class_template_1): Don't mess with
	LAMBDA_EXPR_DEDUCE_RETURN_TYPE_P.
	(tsubst_copy_and_build): Likewise.
	(fn_type_unification, tsubst): Don't reduce the template parm level
	of 'auto' during deduction.
	(unify): Compare 'auto' specially.
	(get_bindings): Change test.
	(always_instantiate_p): Always instantiate functions with deduced
	return type.
	(do_auto_deduction): Handle error_mark_node and lambda context.
	Don't check for use in initializer.
	(contains_auto_r): Remove.
	* search.c (lookup_conversions_r): Handle auto conversion function.
	* semantics.c (lambda_return_type): Handle null return.  Don't mess
	with dependent_lambda_return_type_node.
	(apply_deduced_return_type): Rename from apply_lambda_return_type.
	* typeck.c (merge_types): Handle auto.
	(check_return_expr): Do auto deduction.
	* typeck2.c (add_exception_specifier): Fix complain check.

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

	PR c++/52487
	* class.c (check_field_decls): Call literal_type_p only
	on complete types.

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

	PR c++/52671
	* decl.c (check_tag_decl): Only use CLASSTYPE_TEMPLATE_INSTANTIATION
	on CLASS_TYPE_P types.

2012-03-20  Jason Merrill  <jason@redhat.com>

	* lex.c (init_reswords): Use >= for cxx_dialect test.
	* parser.c (cp_parser_exception_specification_opt): Likewise.

	* mangle.c (write_type): Handle 'auto'.
	* init.c (build_new): Don't do auto deduction where it might
	affect template mangling.

	PR c++/52510
	* decl.c (reshape_init_class): Handle repeated reshaping.
	* search.c (lookup_field_1): Add sanity check.

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

	PR c++/14710
	* cp-tree.h (xvalue_p, maybe_warn_about_useless_cast): Declare.
	* tree.c (xvalue_p): Define.
	* typeck.c (maybe_warn_about_useless_cast): Define.
	(build_reinterpret_cast, build_const_cast,
	build_static_cast, cp_build_c_cast): Use maybe_warn_about_useless_cast.
	* rtti.c (build_dynamic_cast): Likewise.
	* pt.c (tsubst_copy_and_build, case CAST_EXPR): Increment/decrement
	c_inhibit_evaluation_warnings before/after the build_* calls.

2012-03-15  Jason Merrill  <jason@redhat.com>

	PR c++/52582
	* method.c (implicitly_declare_fn): Set DECL_EXTERNAL.

2012-03-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR c++/44783
	* error.c (print_instantiation_partial_context): Use
	template_backtrace_limit.

2012-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* Make-lang.in (doc/g++.1): Remove IRIX 6.5 reference.

2012-03-14  Jakub Jelinek  <jakub@redhat.com>

	PR c++/52521
	* parser.c (lookup_literal_operator): Return fn only if
	processed all arguments from args vector and argtypes is
	void_list_node.

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

	PR c++/51641
	* cp-tree.h (template_type_parameter_p): Declare new function.
    	(parameter_of_template_p): Remove.
	* pt.c (template_type_parameter_p): Define new function.
    	(parameter_of_template_p): Remove.
	* name-lookup.c (binding_to_template_parms_of_scope_p): Don't rely
    	on parameter_of_template_p anymore.  Compare the level of the
    	template parameter to the depth of the template.

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

	* call.c (standard_conversion, build_integral_nontype_arg_conv)
    	(build_new_op_1, convert_like_real, is_subseq)
    	(maybe_handle_implicit_object, maybe_handle_ref_bind, compare_ics)
    	(joust): Use next_conversion instead of accessing fields of struct
    	conversion directly.

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

	PR c++/52299
	* pt.c (tsubst_copy_and_build, case COND_EXPR): Avoid bogus
	division by zero warnings.

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

	* typeck.c (build_array_ref, cp_build_addr_expr_1, convert_ptrmem,
	build_ptrmemfunc): Consistently forward the tsubst_flags_t
	parameter.
	* call.c (resolve_args): Likewise.

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

	PR c++/52521
	* mangle.c (write_literal_operator_name): The length comes after the
	operator prefix.

2012-03-05  Jakub Jelinek  <jakub@redhat.com>

	* pt.c (local_specializations): Change from htab_t into
	struct pointer_map_t *.
	(retrieve_local_specializations, register_local_specialization,
	tsubst_pack_expansion, instantiate_decl): Adjust users.
	(eq_local_specializations, hash_local_specialization): Remove.

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

	PR c++/51930
	* decl2.c (determine_visibility): Correct calculation of class
	args depth.
	* decl.c (check_tag_decl): Adjust warning.

	* method.c (synthesized_method_walk): Cleanups don't affect the EH
	spec either.

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

	* init.c (perform_member_init): Cope with uninstantiated NSDMI.

	Core 1270
	* call.c (build_aggr_conv): Call reshape_init.
	(convert_like_real): Likewise.
	* typeck2.c (process_init_constructor): Clear TREE_CONSTANT if
	not all constant.

	* mangle.c (write_nested_name): Use decl_mangling_context.
	(write_prefix, write_template_prefix): Likewise.

	PR c++/36797
	* mangle.c (write_expression): Improve diagnostic for TRAIT_EXPR.

	* class.c (add_method): Always build an OVERLOAD for using-decls.
	* search.c (lookup_member): Handle getting an OVERLOAD for a
	single function.

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

	PR c++/51989
	* typeck2.c (build_x_arrow): Take a tsubst_flags_t argument and
	propagate it.
	* cp-tree.h (build_x_arrow): Adjust prototype.
	* pt.c (tsubst_copy_and_build): Adjust call.
	* parser.c (cp_parser_postfix_dot_deref_expression): Likewise.

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

	* name-lookup.c (binding_to_template_parms_of_scope_p): Clean up.

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

	PR c++/51930
	* decl.c (check_tag_decl): Move warning for misplaced attributes here.
	(shadow_tag): From here.
	* parser.c (cp_parser_explicit_instantiation): Don't warn here.

2012-02-21  Jakub Jelinek  <jakub@redhat.com>

	PR c++/52312
	* typeck.c (check_literal_operator_args): Initialize *long_double_p
	and *long_long_unsigned_p even if processing_template_decl.

2012-02-16  Jason Merrill  <jason@redhat.com>

	PR c++/52248
	* decl.c (define_label): Use timevar_cond_start/stop.

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

	PR c++/52126
	* decl.c (xref_basetypes): Call dependent_scope_p instead of
	dependent_type_p.

2012-02-16  Jason Merrill  <jason@redhat.com>

	PR c++/51415
	* error.c (dump_expr): Handle lambda closures specifically.

2012-02-14  Jason Merrill  <jason@redhat.com>

	* parser.c (cp_parser_explicit_instantiation): Give a warning
	for ignored attributes on explicit class instantiation.

2012-02-14  Jakub Jelinek  <jakub@redhat.com>

	PR c++/52247
	* pt.c (tsubst_copy_asm_operands): For LABEL_DECL values call
	lookup_label on label's name and set TREE_USED.

2012-02-14  Jason Merrill  <jason@redhat.com>

	PR c++/39055
	* decl.c (local_variable_p_walkfn): Don't check DECL_ARTIFICIAL.

2012-02-14  Jakub Jelinek  <jakub@redhat.com>

	PR c/52181
	* decl.c (duplicate_decls): If olddecl has bigger DECL_ALIGN than
	newdecl, copy DECL_ALIGN to newdecl and or DECL_USER_ALIGN bits.

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

	PR c++/51675
	* semantics.c (cx_check_missing_mem_inits): Handle unions.
	Fix constexpr default constructor logic.

	PR c++/52035
	* pt.c (tsubst): Strip uninstantiated typedef.

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

	PR c++/52088
	* cvt.c (build_expr_type_conversion): Check for template conversion.

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

	PR c++/52043
	* cp-tree.h (PACK_EXPANSION_LOCAL_P): New.
	* pt.c (make_pack_expansion, tsubst_initializer_list): Set it.
	(tsubst_pack_expansion): Check it.

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

	PR c++/51327
	* class.c (explain_non_literal_class): Correctly handle implicitly
	deleted constructors.

2012-01-27  Jakub Jelinek  <jakub@redhat.com>

	PR c++/51852
	* pt.c (tsubst_pack_expansion): Delete and restore
	local_specialization whenever need_local_specialization, not just
	when saved_local_specializations is non-NULL.

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

	PR c++/51370
	* error.c (dump_decl, [TEMPLATE_ID_EXPR]): Handle error_mark_node
	as TREE_OPERAND (t, 1).

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

	PR c++/51917
	* decl.c (xref_basetypes): Check VEC_length instead of VEC_space.

	PR c++/51973
	* tree.c (called_fns_equal): Check template args.
	(cp_tree_equal): Call it.

2012-01-24  Aldy Hernandez  <aldyh@redhat.com>
	    Patrick Marlier  <patrick.marlier@gmail.com>

	PR c++/51928
	* class.c (set_method_tm_attributes): Use TARGET_THUNK instead of
	thunk for set_one_vmethod_tm_attributes.

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

	PR c++/51223
	* call.c (build_over_call): Check for error_mark_node as
	TREE_VALUE when default arguments are processed.

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

	PR c++/51930
	* decl2.c (determine_visibility): Check for visibility attribute
	on template specialization.

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

	PR c++/51398
	* pt.c (parameter_of_template_p): Skip error_mark_node parameters.

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

	PR c++/51925
	* class.c (add_method): Set OVL_USED for using-decls.
	* tree.c (ovl_scope): New.
	* cp-tree.h: Declare it.
	* parser.c (cp_parser_template_name): Use it.
	* semantics.c (baselink_for_fns): Likewise.
	* name-lookup.c (set_inherited_value_binding_p): Likewise.

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

	PR c++/51402
	* pt.c (lookup_template_class_1): Check context returned by
	tsubst for error_mark_node.

2012-01-19  Kai Tietz  <ktietz@redhat.com>

	PR c++/51344
	* decl2.c (save_template_attributes): Use merge_attributes
	instead of chaining up via TREE_CHAIN.

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

	PR c++/51889
	* class.c (finish_struct): Call add_method here for function usings.
	* semantics.c (finish_member_declaration): Not here.

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

	PR c++/51225
	* typeck2.c (store_init_value): Within a template guard
	cxx_constant_value with require_potential_constant_expression.
	* pt.c (convert_nontype_argument): Likewise.

2012-01-16  Jakub Jelinek  <jakub@redhat.com>

	PR c++/51854
	* mangle.c (write_template_arg_literal): Handle complex.

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

	PR c++/51827
	* mangle.c (mangle_decl): Don't mangle uninstantiated templates.

	PR c++/51868
	* typeck.c (build_static_cast_1): Handle bit-fields properly.

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

	PR c++/50012
	* typeck.c (enum_cast_to_int): New static function.
	(cp_build_binary_op): When handling warn_sign_compare, don't test
	for TREE_NO_WARNING.  Do call enum_cast_to_int.
	* call.c (avoid_sign_compare_warnings): Remove static function.
	(build_new_op_1): Don't call avoid_sign_compare_warnings.

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

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

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

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

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

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

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

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

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

	PR c++/51633
	* semantics.c (cp_parser_ctor_initializer_opt_and_function_body):
	Set the pointer to the last block of the constructor to the
	current statement.
	(build_constexpr_constructor_member_initializers): Get
	build_data_member_initialization a chance to deal with more
	statements before we choke.

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

	PR c++/48051
	* mangle.c (write_expression): Mangle BASELINK scope if
	BASELINK_QUALIFIED_P.
	* search.c (adjust_result_of_qualified_name_lookup): Set
	BASELINK_QUALIFIED_P.
	* tree.c (cp_tree_equal) [BASELINK]: Compare BASELINK_QUALIFIED_P.
	* parser.c (cp_parser_postfix_dot_deref_expression): Don't call
	adjust_result_of_qualified_name_lookup for non-qualified names.

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

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

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

	PR c++/51818
	* mangle.c (find_substitution): A type is only a substitution
	match if we're looking for a type.
	(write_nested_name): Use decl_mangling_context.

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

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

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

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

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

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

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

	PR c++/6057
	PR c++/48051
	PR c++/50855
	PR c++/51322
	* mangle.c (write_expression): Support NEW_EXPR, DELETE_EXPR,
	THROW_EXPR, CONSTRUCTOR, OVERLOAD.  Fix PREINCREMENT_EXPR and
	PREDECREMENT_EXPR.
	(write_template_arg): Fix mangling of class-scope functions and
	argument packs.
	(mangle_decl): Update suggested -fabi-version argument.
	* operators.def: Add DOTSTAR_EXPR, REINTERPRET_CAST_EXPR,
	DYNAMIC_CAST_EXPR; correct CONST_CAST_EXPR, STATIC_CAST_EXPR.
	* tree.c (dependent_name): No longer static.
	* cp-tree.h: Declare it.
	* pt.c (unify): Defer handling of unconverted functions.

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

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

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

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

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

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

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

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

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

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

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

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

2012-01-03  Jakub Jelinek  <jakub@redhat.com>

	PR c++/51669
	* semantics.c (finish_omp_clauses): Call fold_build_cleanup_point_expr
	on OMP_CLAUSE_{IF,FINAL,NUM_THREADS,SCHEDULE_CHUNK}_EXPR.

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

	DR 1359
	PR c++/51675
	* method.c (walk_field_subobs): Don't check for uninitialized
	fields in a union.
	(synthesized_method_walk): Check here.

	DR 325
	PR c++/51666
	* parser.c (cp_parser_cache_defarg): Split out...
	(cp_parser_parameter_declaration): ...from here.
	(cp_parser_save_nsdmi): Use it.
	(cp_parser_cache_group): Remove CPP_COMMA support.

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

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

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

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

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

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

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

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

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

	* parser.c (cp_parser_using_declaration): Add a warning about
	deprecated access declarations when no errors were encountered
	while parsing the access declaration. Save the first token in
	order to emit the warning at the right place.

Copyright (C) 2012 Free Software Foundation, Inc.

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