+2009-10-01 Gabriel Dos Reis <gdr@cs.tamu.edu>
+
+ * decl.c (record_builtin_java_type): Undo unintended change.
+ (cxx_init_decl_processing): Likewise.
+
+2009-10-01 Jason Merrill <jason@redhat.com>
+
+ * pt.c (register_specialization): Push DECL_SOURCE_LOCATION to the
+ clones.
+
+ * decl.c (grok_special_member_properties): Only adjust
+ TYPE_HAS_COMPLEX_* if the function is defaulted in the class body.
+ (cp_finish_decl): Push DECL_DELETED_FN/DECL_DEFAULTED_FN to the
+ clones.
+
+2009-09-30 Gabriel Dos Reis <gdr@cs.tamu.edu>
+
+ * decl.c (check_for_uninitialized_const_var): Check constexpr
+ variables too.
+ (grokdeclarator): Handle `constexpr'.
+ (check_tag_decl): Reject `constexpr'.
+ (check_function_type): Check constexpr functions.
+ * cp-tree.h (ds_constexpr): New cp_decl_spec enumerator.
+ (CLASSTYPE_LITERAL_P): New.
+ (lang_type_class::is_literal): New.
+ (lang_type_class::dummy): Adjust width.
+ (literal_type_p): Declare.
+ * parser.c (cp_parser_check_decl_spec): Print it.
+ (cp_parser_decl_specifier_seq): Accept "constexpr".
+ * semantics.c (validate_constexpr_fundecl): Define.
+ (literal_type_p): Define.
+
+2009-09-30 Jason Merrill <jason@redhat.com>
+
+ * semantics.c (lambda_expr_this_capture): Fix default capture
+ of explicit capture of 'this'.
+
+2009-09-30 Jason Merrill <jason@redhat.com>
+
+ * parser.c (cp_parser_lambda_expression): Don't add __ to __this.
+
+2009-09-30 Jason Merrill <jason@redhat.com>
+
+ * cp-tree.h (LANG_DECL_U2_CHECK): Check LANG_DECL_HAS_MIN.
+
+2009-09-29 John Freeman <jfreeman08@gmail.com>
+ Jason Merrill <jason@redhat.com>
+
+ Add support for lambda-expressions as per N2927.
+ * cp-tree.def (VEC_INIT_EXPR, LAMBDA_EXPR): New.
+ * cp-tree.h (LAMBDA_TYPE_P, LAMBDA_FUNCTION_P): New.
+ (LAMBDA_EXPR_DEFAULT_CAPTURE_MODE): New.
+ (LAMBDA_EXPR_DEFAULT_CAPTURE_LIST): New.
+ (LAMBDA_EXPR_THIS_CAPTURE, LAMBDA_EXPR_CAPTURES_THIS_P): New.
+ (LAMBDA_EXPR_MUTABLE_P, LAMBDA_EXPR_DEDUCE_RETURN_TYPE_P): New.
+ (LAMBDA_EXPR_RETURN_TYPE, LAMBDA_EXPR_LOCATION): New.
+ (LAMBDA_EXPR_EXTRA_SCOPE, LAMBDA_EXPR_DISCRIMINATOR): New.
+ (struct tree_lambda_expr): New.
+ (union lang_tree_node): Add lambda_expression.
+ (struct lang_type_class): Add lazy_move_ctor flag, lambda_expr field.
+ (CLASSTYPE_LAZY_MOVE_CTOR, CLASSTYPE_LAMBDA_EXPR): New.
+ (LAMBDA_TYPE_EXTRA_SCOPE, VEC_INIT_EXPR_SLOT): New.
+ (VEC_INIT_EXPR_INIT, DECLTYPE_FOR_LAMBDA_CAPTURE): New.
+ (DECLTYPE_FOR_LAMBDA_RETURN): New.
+ (enum special_function_kind): Add sfk_move_constructor.
+ (LAMBDANAME_PREFIX, LAMBDANAME_FORMAT, LAMBDANAME_P): New.
+ * parser.c (cp_parser_lambda_expression, cp_parser_lambda_introducer)
+ (cp_parser_lambda_declarator_opt, cp_parser_lambda_body): New.
+ (start_lambda_scope, record_lambda_scope, finish_lambda_scope): New.
+ (no_linkage_lambda_type_p): New.
+ (cp_parser_primary_expression): Recognize lambda expression.
+ (cp_parser_init_declarator): Note lambda scope.
+ (cp_parser_function_definition_after_declarator): Likewise.
+ (cp_parser_late_parsing_default_args): Likewise.
+ (cp_parser_skip_to_closing_parenthesis): Skip to end of lambda capture
+ lists, too.
+ (cp_parser_parameter_declaration): Don't defer lambda default args.
+ * semantics.c (finish_non_static_data_member, finish_id_expression):
+ Handle default capture for lambda expressions.
+ (finish_this_expr): Handle 'this' keyword inside of lambda expressions.
+ (outer_automatic_var_p): New.
+ (finish_decltype_type): Handle decltypes within lambda expressions.
+ (classtype_has_nothrow_assign_or_copy_p): Synthesized move constructor.
+ (build_lambda_expr, build_lambda_object, begin_lambda_type)
+ (lambda_return_type, lambda_capture_field_type, apply_lambda_return_type)
+ (capture_decltype, add_capture, add_default_capture)
+ (lambda_expr_this_capture): New.
+ * mangle.c (write_unnamed_type_name): New. Incomplete.
+ (write_closure_type_name): New.
+ (write_unqualified_name): Recognize unnamed, closure types.
+ (write_type): Do not write decltypes from lambda expressions.
+ (decl_mangling_context): New.
+ (write_name): Use it. Handle PARM_DECL scope.
+ (write_prefix): Likewise. Handle VAR_DECL/FIELD_DECL scope.
+ (write_compact_number): Factor out from...
+ (write_expression, write_template_param): ...here.
+ (discriminator_for_local_entity): Recognize lambdas.
+ (write_local_name): Handle PARM_DECL scope.
+ * typeck.c (structural_comptypes): Compare decltypes from lambda
+ expressions.
+ (check_return_expr): Deduce lambda return type from multiple return
+ statements.
+ * class.c (add_implicitly_declared_members): Add lazy move constructor
+ for lambda types.
+ (check_bases_and_members): Delete default constructor and assignment
+ operator for lambda types.
+ (maybe_note_name_used_in_class): Do not confuse lambda expression with
+ defining a class.
+ * decl.c (reshape_init_r): Array copy.
+ (grokfndecl): Synthesized move constructor.
+ (cp_tree_node_structure): Lambda expression.
+ * method.c (use_thunk): Synthesized move constructor.
+ (do_build_copy_constructor): Likewise.
+ (locate_copy): Likewise.
+ (implicitly_declare_fn): Likewise.
+ * cp-objcp-common.c (cp_tree_size): Handle LAMBDA_EXPR.
+ * error.c (dump_aggr_type): Recognize lambda type.
+ (dump_function_decl): Recognize lambda function.
+ (function_category): Likewise.
+ (dump_function_name): Hide lambda name.
+ * tree.c (build_array_copy, move): New.
+ (special_function_p): Synthesized move constructor.
+ (no_linkage_check): Handle lambdas.
+ * search.c (lookup_fnfields_1): Synthesized move constructor.
+ * cp-gimplify.c (cp_gimplify_init_expr, cp_gimplify_expr):
+ Handle VEC_INIT_EXPR.
+ * typeck2.c (digest_init_r): Array copy.
+ * pt.c (get_template_info): Don't touch typedefs.
+ (instantiate_decl): Don't resubstitute artificial decls.
+ (tsubst_decl, tsubst, tsubst_copy_and_build): Handle lambdas.
+ (lookup_template_class): Don't fall back on name lookup.
+ * name-lookup.c (make_lambda_name): New.
+ (pushdecl_class_level): Handle default capture for lambda expressions.
+ (qualify_lookup): Handle decltypes within lambda expressions.
+ (pushtag): Handle ts_within_enclosing_non_class in function scope.
+
+2009-09-28 Janis Johnson <janis187@us.ibm.com>
+
+ * mangle.c (write_builtin_type): Support decimal float types.
+
+2009-09-28 Richard Henderson <rth@redhat.com>
+
+ * cp-objcp-common.h (LANG_HOOKS_EH_USE_CXA_END_CLEANUP): New.
+
+2009-09-24 Jakub Jelinek <jakub@redhat.com>
+
+ * method.c (make_thunk, make_alias_for): Don't set
+ DECL_NO_STATIC_CHAIN.
+ * decl.c (builtin_function_1, grokfndecl): Likewise.
+ * lex.c (build_lang_decl): Likewise.
+
+2009-09-23 Dodji Seketeli <dodji@redhat.com>
+
+ PR debug/41065
+ * decl.c (cp_finish_decl): Record the types used by the global
+ variable declaration we've just parsed.
+
+2009-09-22 Dodji Seketeli <dodji@redhat.com>
+
+ * cp-lang.c (LANG_HOOKS_FUNCTION_PARAMETER_PACK_P,
+ LANG_HOOKS_FUNCTION_PARM_EXPANDED_FROM_PACK_P,
+ LANG_HOOKS_GET_GENERIC_FUNCTION_DECL): Initialize these
+ hooks for the c++ FE.
+ * cp-tree.h (function_parameter_pack_p, get_function_template_decl,
+ function_parameter_expanded_from_pack_p): Declare ...
+ * pt.c (function_parameter_pack_p, get_function_template_decl,
+ function_parameter_expanded_from_pack_p): ... new hooks.
+ (get_template_info): Make this more robust.
+ (template_args_variadic_p, make_ith_pack_parameter_name): Add a new
+ line between comment and function.
+ (get_template_argument_pack_elems): Fix comment.
+ (tsubst_decl): Arguments of function parameter packs are not
+ parameter packs themselves.
+
+2009-09-21 Jason Merrill <jason@redhat.com>
+
+ PR c++/41421
+ * tree.c (trivial_type_p): Fix logic.
+
+2009-09-21 Jason Merrill <jason@redhat.com>
+
+ * name-lookup.c (push_class_level_binding): Sanity check.
+
+2009-09-18 Jason Merrill <jason@redhat.com>
+
+ * decl2.c (determine_visibility): Make anonymous types internal.
+ (mark_used): Complain about types without linkage used in
+ decls with internal linkage.
+ (vague_linkage_fn_p): Split out from...
+ * decl.c (maybe_commonize_var): ...here.
+ (grokdeclarator): Adjust linkage when a typedef gives linkage name.
+ * tree.c (no_linkage_check): Check the enclosing class and template
+ arguments.
+
+ * cp-tree.h (TYPE_NAMESPACE_SCOPE_P): New.
+
+ * pt.c (get_pattern_parm): New.
+ (listify): Split out from...
+ (listify_autos): ...here.
+ (unify): Deduce std::initializer_list for T.
+ * call.c (build_over_call): Warn about it.
+
+2009-09-17 Andrew Pinski <pinskia@gcc.gnu.org>
+
+ PR c++/39365
+ * typeck.c (cp_build_unary_op): Check TREE_CODE for bools instead of
+ using same_type_p.
+ (convert_for_assignment): Likewise.
+ * cvt.c (type_promotes_to): Likewise.
+
+2009-09-14 Richard Henderson <rth@redhat.com>
+ Jakub Jelinek <jakub@redhat.com>
+
+ * cp-tree.h (finish_asm_stmt): Update decl.
+ * parser.c (cp_parser_asm_definition): Parse asm goto.
+ (cp_parser_asm_label_list): New.
+ * pt.c (tsubst_copy_asm_operands): Don't recurse on labels.
+ (tsubst_expr): Handle asm labels.
+ * semantics.c (finish_asm_stmt): Add and use labels parameter.
+
+2009-09-14 Richard Henderson <rth@redhat.com>
+
+ * except.c (init_exception_processing): Don't call
+ default_init_unwind_resume_libfunc.
+ (cp_protect_cleanup_actions): Return the decl to call.
+ (build_exc_ptr): Use __builtin_eh_pointer.
+ * optimize.c (clone_body): Set eh_lp_nr, not eh_region.
+
+2009-09-13 Richard Guenther <rguenther@suse.de>
+ Rafael Avila de Espindola <espindola@google.com>
+
+ * except.c (init_exception_processing): Do not set
+ lang_eh_runtime_type.
+ (choose_personality_routine): Do not set eh_personality_decl,
+ set pragma_java_exceptions.
+ * cp-lang.c (LANG_HOOKS_EH_RUNTIME_TYPE): Define.
+ (LANG_HOOKS_EH_PERSONALITY): Likewise.
+ (cp_eh_personality_decl): New.
+ (cp_eh_personality): Likewise.
+ * Make-lang.in (cp-lang.o): Add $(EXPR_H) and $(EXCEPT_H)
+ dependencies.
+
+2009-09-13 Wei Guozhi <carrot@google.com>
+
+ PR c++/3187
+ * cp/optimize.c (build_delete_destructor_body): New function.
+ (maybe_clone_body): Call build_delete_destructor_body for
+ deleting destructor.
+
+2009-09-10 Jason Merrill <jason@redhat.com>
+
+ * repo.c (extract_string, get_base_filename, init_repo): constify.
+
+2009-09-09 Jason Merrill <jason@redhat.com>
+
+ * error.c (find_typenames_r): Also add decltypes.
+
+2009-09-09 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/28293
+ * decl2.c (grokfield): Check for explicit template argument lists.
+
+2009-09-09 Jack Howarth <howarth@bromo.med.uc.edu>
+
+ PR bootstrap/41180
+ * Make-lang.in: Remove redundant code from linkage for darwin10.
+
+2009-09-08 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/39923
+ * decl.c (build_init_list_var_init): Check return value of
+ perform_implicit_conversion.
+
+2009-09-08 Jason Merrill <jason@redhat.com>
+
+ * class.c (currently_open_class): Make sure we're dealing with the
+ main variant.
+
+ * cp-tree.h (enum overload_flags): Remove OP_FLAG.
+ * method.c (lazily_declare_fn): Check for dtorness in ABI warning.
+
+ * name-lookup.c (is_class_level): Remove.
+ (push_binding_level, leave_scope, resume_scope): Adjust.
+ (pushlevel_class): Adjust.
+ (poplevel_class): Make sure we're on class_binding_level.
+
+ * decl.c (grokmethod): Rename from start_method.
+ (finish_method): Remove.
+ * cp-tree.h: Adjust.
+ * parser.c (cp_parser_save_member_function_body): Adjust.
+
+2009-09-03 Doug Kwan <dougkwan@google.com>
+
+ * tree.c (cp_fix_function_decl_p): New.
+ (cp_free_lang_data): New.
+
+2009-09-03 Diego Novillo <dnovillo@google.com>
+
+ * Make-lang.in (decl2.o): Add dependency on $(POINTER_SET_H).
+ * decl2.c: Include pointer-set.h.
+ (collect_candidates_for_java_method_aliases): New.
+ (cp_write_global_declarations): Call it.
+ Add local variable CANDIDATES. If set, call
+ build_java_method_aliases.
+ (build_java_method_aliases): Add argument CANDIDATES.
+ Use it to determine if FNDECL should get a hidden alias.
+ * cp-objcp-common.h (LANG_HOOKS_FREE_LANG_DATA): Define.
+ * cp-tree.h (cp_free_lang_data): Declare.
+
+2009-09-03 Richard Guenther <rguenther@suse.de>
+
+ * method.c (use_thunk): Use cgraph_finalize_function to hand
+ off thunks to the cgraph.
+ * semantics.c (emit_associated_thunks): Do not emit thunks
+ for really extern functions.
+
+2009-09-03 Diego Novillo <dnovillo@google.com>
+
+ * cp-lang.c (lang_hooks): Remove const qualifier.
+
+2009-09-02 Jason Merrill <jason@redhat.com>
+
+ * semantics.c (describable_type): Don't pretend to be in a template.
+
+ * ptree.c (cxx_print_type) [DECLTYPE_TYPE]: Print the expression.
+
+2009-09-01 Alexandre Oliva <aoliva@redhat.com>
+
+ * cp-tree.h (TFF_NO_OMIT_DEFAULT_TEMPLATE_ARGUMENTS): New.
+ * cp-lang.c (cxx_dwarf_name): Pass it.
+ * error.c (count_non_default_template_args): Take flags as
+ argument. Adjust all callers. Skip counting of default
+ arguments if the new flag is given.
+
+2009-09-01 Dodji Seketeli <dodji@redhat.com>
+
+ PR bootstrap/41205
+ * pt.c (make_ith_pack_parameter_name): Don't use strnlen that is a
+ GNU extension.
+
+2009-09-01 Richard Guenther <rguenther@suse.de>
+
+ * cp-objcp-common.c (cp_expr_size): Use tree_expr_size.
+ * cp-objcp-common.h (LANG_HOOKS_EXPR_SIZE): Do not define.
+
+2009-09-01 Richard Guenther <rguenther@suse.de>
+
+ * cp-objcp-common.h (LANG_HOOKS_MARK_ADDRESSABLE): Remove.
+
+2009-08-31 Dodji Seketeli <dodji@redhat.com>
+
+ PR debug/30161
+ * cp-tree.h (get_template_info): Parameter should be const.
+ (CLASSTYPE_SPECIALIZATION_OF_PRIMARY_TEMPLATE_P): Fix typo.
+ (get_template_argument_pack_elems,
+ get_primary_template_innermost_parameters,
+ get_template_innermost_arguments, template_template_parameter_p):
+ Declare ...
+ * pt.c (get_template_argument_pack_elems,
+ get_template_innermost_parameters, get_template_innermost_arguments,
+ template_template_parameter_p):
+ ... New C++ front end implementation of new language hooks.
+ (primary_template_instantiation_p): New private helper.
+ (make_ith_pack_parameter_name): Use snprintf and strnlen instead of
+ printf and strlen.
+ (get_template_info): Const-ify parameter.
+ * cp-lang.c (LANG_HOOKS_GET_INNERMOST_GENERIC_PARMS,
+ LANG_HOOKS_GET_INNERMOST_GENERIC_ARGS,
+ LANG_HOOKS_GET_ARGUMENT_PACK_ELEMS,
+ LANG_HOOKS_GENERIC_TYPE_PARAMETER_DECL_P): Initialize these
+ interfaces for the C++ front-end.
+
+2009-08-31 Jason Merrill <jason@redhat.com>
+
+ PR c++/41127
+ * parser.c (cp_parser_enum_specifier): Make sure the : is followed by a
+ type-specifier-seq before we commit.
+
+2009-08-28 Richard Guenther <rguenther@suse.de>
+
+ PR lto/41058
+ * cp-gimplify.c (cp_genericize_r): Do not leak zero-sized stores
+ into the generic IL.
+
+2009-08-27 Richard Guenther <rguenther@suse.de>
+
+ * class.c (build_vtbl_ref_1): Remove excess vertical space.
+ * Make-lang.in (CXX_TREE_H): Remove c-common.def dependency
+ tracked by $(TREE_H).
+ * semantics.c (expand_or_defer_fn): Zero DECL_SAVED_TREE.
+
+2009-08-26 Jason Merrill <jason@redhat.com>
+
+ * call.c (build_builtin_candidate): Don't set LOOKUP_ONLYCONVERTING
+ if we're contextually converting to bool.
+ (build_conditional_expr): Likewise.
+ * typeck.c (condition_conversion): Likewise.
+
+ * call.c (build_conditional_expr): Fix logic errors.
+ (build_new_op): Remove dead COND_EXPR handling.
+
+2009-08-24 Jason Merrill <jason@redhat.com>
+
+ * cp-tree.h (DECL_DEFERRED_FN): Remove.
+ (struct lang_decl_fn): Remove deferred flag.
+ * class.c (build_clone): Don't set it.
+ * decl2.c (note_vague_linkage_fn): Don't check or set it.
+ (mark_used): Don't check it.
+ * method.c (make_thunk, make_alias_for): Don't set it.
+
+ * decl2.c (mark_used): Streamline logic.
+
+ PR c++/41109
+ PR c++/41110
+ PR c++/41134
+ * cp-tree.h (DECL_ODR_USED): New macro.
+ (struct lang_decl_base): Add odr_used flag.
+ * decl.c (duplicate_decls): Propagate it. Use it for error.
+ * pt.c (register_specialization): Use it for error.
+ * decl2.c (mark_used): Use it as gating flag rather than TREE_USED.
+ (cp_write_global_declarations): Use it for error.
+ (tree_used_ok): Remove.
+ * cp-tree.h: Remove tree_used_ok.
+ * call.c (build_call_a): Don't call it.
+ * init.c (build_offset_ref): Likewise.
+
+2009-08-21 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/41131
+ * tree.c (lvalue_p_1) <case CONST_DECL>: Return clk_none if
+ not TREE_STATIC.
+
+2009-08-19 Jason Merrill <jason@redhat.com>
+
+ PR c++/41119
+ PR c++/41120
+ * decl2.c (mark_used): Increment function_depth during synthesis.
+ * parser.c (cp_parser_default_argument): Not here.
+
+2009-08-19 Jakub Jelinek <jakub@redhat.com>
+
+ * method.c (use_thunk): Call free_after_compilation after
+ assemble_end_function.
+
+2009-08-17 Richard Guenther <rguenther@suse.de>
+
+ * decl.c (build_ptrmemfunc_type): Keep variant chain intact.
+ Avoid useless copy.
+ (finish_enum): Keep variant chain intact.
+ * tree.c (cp_build_reference_type): Likewise.
+
+2009-08-16 Jason Merrill <jason@redhat.com>
+
+ Make TREE_USED match the [basic.def.odr] concept for FUNCTION_DECL
+ and VAR_DECL, so mark_used only has effect the first time.
+ * decl2.c (mark_used): Just return if TREE_USED is already set.
+ Don't set TREE_USED if cp_unevaluated_operand is set.
+ (tree_used_ok): New fn.
+ * init.c (build_offset_ref): Check it instead of TREE_USED.
+ * call.c (build_call_a): Likewise.
+ * cp-tree.h: Declare it.
+ (DECL_NO_LINKAGE_CHECKED): No longer needed.
+ (struct lang_decl_base): Remove no_linkage_checked bitfield.
+
+ * decl2.c (finish_static_data_member_decl): Don't set TREE_USED.
+
+ * decl2.c (mark_used): It's ok to synthesize for default args now.
+
+2009-08-10 Jason Merrill <jason@redhat.com>
+
+ Implement DR 757: It's OK for a decl to use a type without linkage
+ so long as the decl is defined in the current translation unit.
+ * decl2.c (no_linkage_decls): New vector.
+ (mark_used): Add decls that use types with no linkage.
+ (cp_write_global_declarations): Check that they are defined.
+ (decl_defined_p, no_linkage_error): New fns.
+ * cp-tree.h (DECL_NO_LINKAGE_CHECKED): New macro.
+ (struct lang_decl_base): Add flag.
+ * decl.c (grokfndecl): Don't check type linkage.
+ (grokvardecl): If the type has no linkage, just make sure
+ DECL_LANG_SPECIFIC is set.
+ * pt.c (check_instantiated_arg): Don't check type linkage.
+ * name-lookup.c (is_local_extern): New fn.
+ * name-lookup.h: Declare it.
+
+2009-08-05 Jason Merrill <jason@redhat.com>
+
+ PR c++/40948
+ * init.c (build_vec_init): Evaluate the initializer before
+ starting the initialization try block.
+
+2009-08-05 Manuel López-Ibáñez <manu@gcc.gnu.org>
+
+ PR c++/36069
+ * typeck.c (convert_for_assignment): Do not warn for any boolean
+ variant. Use explicit location.
+
+2009-08-04 Dodji Seketeli <dodji@redhat.com>
+
+ PR c++/39987
+ * pt.c (tsubst_default_argument): Let access checks of the
+ default argument happen in the context of the current function.
+
+2009-08-04 Manuel López-Ibáñez <manu@gcc.gnu.org>
+
+ PR c++/16696
+ * call.c (build_new_op): Only try prefix operator if -fpermissive,
+ otherwise just error.
+
+2009-08-04 Dodji Seketeli <dodji@redhat.com>
+
+ PR debug/39706
+ * error.c (lang_decl_name): Print qualified names for decls
+ in namespace scope.
+
+2009-08-03 Jason Merrill <jason@redhat.com>
+ Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/40948
+ * init.c (build_vec_init): Look through a TARGET_EXPR around a
+ CONSTRUCTOR.
+
+2009-07-31 Jason Merrill <jason@redhat.com>
+ Douglas Gregor <doug.gregor@gmail.com>
+
+ Remove implicit binding of lvalues to rvalue references (N2831)
+ * call.c (convert_class_to_reference): Binding an lvalue to an
+ rvalue reference is bad. If the user-defined conversion is bad,
+ set bad_p before merging conversions.
+ (maybe_handle_ref_bind): Don't push down bad_p.
+ (reference_binding): Binding an lvalue to an rvalue reference is bad.
+ (convert_like_real): Give a helpful error about binding lvalue
+ to rvalue reference.
+ (reference_related_p): No longer static.
+ * typeck.c (build_typed_address): New.
+ (build_static_cast_1): Add static_cast from lvalue to &&.
+ * cp-tree.h: Adjust.
+
+2009-07-31 Jason Merrill <jason@redhat.com>
+
+ * call.c (reference_binding): Rename lvalue_p to is_lvalue.
+ Do direct binding of "rvalues" in memory to rvalue references.
+ * tree.c (lvalue_p_1): Can't be both non-addressable lvalue and
+ "rvalue" in memory.
+ * typeck.c (build_static_cast_1): Do direct binding of memory
+ "rvalues" to rvalue references.
+ * cvt.c (cp_fold_convert): New.
+ * cp-tree.h: Declare it.
+
+2009-07-31 Jason Merrill <jason@redhat.com>
+
+ * typeck.c (build_address): Do fold away ADDR_EXPR of INDIRECT_REF.
+ * tree.c (rvalue): Use cp_build_qualified_type, not TYPE_MAIN_VARIANT.
+
+2009-07-29 Jason Merrill <jason@redhat.com>
+
+ PR c++/14912
+ * cp-tree.h (enum tsubst_flags): Add tf_no_class_instantiations.
+ * error.c (count_non_default_template_args): Pass it.
+ * pt.c (tsubst) [TYPENAME_TYPE]: Don't complete type if it's set.
+
+2009-07-29 Richard Guenther <rguenther@suse.de>
+
+ PR c++/40834
+ * cp-gimplify.c (cp_genericize_r): Properly walk the BIND_EXPR
+ vars.
+
+2009-07-26 Simon Martin <simartin@users.sourceforge.net>
+
+ PR c++/40749
+ * decl.c (grokdeclarator): Do not set TREE_NO_WARNING for functions
+ with a qualified return type.
+
+2009-07-24 Jason Merrill <jason@redhat.com>
+
+ Core issue 901
+ * call.c (build_op_delete_call): If this is for a new-expression
+ and the op delete is deleted, do nothing.
+
+ Core issue 702
+ * call.c (compare_ics): Give list-initialization of std::init_list
+ priority over conversion to scalar, too.
+
+2009-07-22 Jason Merrill <jason@redhat.com>
+
+ * mangle.c (mangle_type_string_for_rtti): Rename to be clearer.
+ (needs_fake_anon): New.
+ (write_name): Check it.
+ (write_nested_name): Add a fake anonymous namespace scope if true.
+ * name-lookup.c (get_anonymous_namespace_name): No longer static.
+ * rtti.c, cp-tree.h: Adjust.
+
+2009-07-22 Richard Guenther <rguenther@suse.de>
+
+ PR c++/40799
+ * cp-gimplify.c (cp_gimplify_expr): Move handling of using
+ related exprs to ...
+ (cp_genericize_r): ... genericization stage.
+ (cp_genericize): Adjust.
+
+2009-07-21 Jason Merrill <jason@redhat.com>
+
+ Core issue 934
+ * call.c (reference_binding): Implement binding to { }.
+ (initialize_reference): Binding temporary to non-const && is fine.
+ * decl.c (grok_reference_init): Remove error for CONSTRUCTOR.
+
+ * decl.c (reshape_init_r): { T } is not an aggregate initializer
+ for class T.
+
2009-07-17 Richard Guenther <rguenther@suse.de>
PR c/40401