cp-tree.h (struct language_function): Rename in_function_try_handler to x_in_function...
[gcc.git] / gcc / cp / ChangeLog
index f95040f86a101cb34b0a5b46286a1f02eeaf0250..039b155810f2262b3dc40f9fd733f65d9d1330f3 100644 (file)
@@ -1,3 +1,624 @@
+2011-10-13   Diego Novillo  <dnovillo@google.com>
+
+       * cp-tree.h (struct language_function): Rename in_function_try_handler
+       to x_in_function_try_handler.
+       Rename in_base_initializer to x_in_base_initializer.
+       Update all users.
+
+2011-10-13   Diego Novillo  <dnovillo@google.com>
+
+       * class.c (sorted_fields_type_new): Factor out of ...
+       (finish_struct_1): ... here.
+
+2011-10-13  Jason Merrill  <jason@redhat.com>
+
+       PR c++/50618
+       * init.c (expand_aggr_init_1): Don't zero-initialize virtual
+       bases of a base subobject.
+
+2011-10-12  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       PR c++/50594
+       * decl.c (cxx_init_decl_processing): Add
+       __attribute__((externally_visible)) to operator new and
+       operator delete library fn.
+
+2011-10-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
+
+       * decl.c (duplicate_decls): Delete old interface with two parallel
+       arrays to hold standard builtin declarations, and replace it with
+       a function based interface that can support creating builtins on
+       the fly in the future.  Change all uses, and poison the old
+       names.  Make sure 0 is not a legitimate builtin index.
+       * except.c (build_eh_type_type): Ditto.
+       (choose_personality_routine): Ditto.
+       * semantics.c (finish_omp_atomic): Ditto.
+       (finish_omp_barrier): Ditto.
+       (finish_omp_flush): Ditto.
+       (finish_omp_taskwait): Ditto.
+
+2011-10-11  Jason Merrill  <jason@redhat.com>
+
+       PR c++/49855
+       PR c++/49896
+       * cp-tree.def (IMPLICIT_CONV_EXPR): New.
+       * call.c (perform_implicit_conversion_flags): Build it
+       instead of NOP_EXPR.
+       * cp-objcp-common.c (cp_common_init_ts): It's typed.
+       * cxx-pretty-print.c (pp_cxx_cast_expression): Handle it.
+       (pp_cxx_expression): Likewise.
+       * error.c (dump_expr): Likewise.
+       * semantics.c (potential_constant_expression_1): Likewise.
+       * tree.c (cp_tree_equal): Likewise.
+       (cp_walk_subtrees): Likewise.
+       * pt.c (iterative_hash_template_arg): Likewise.
+       (for_each_template_parm_r): Likewise.
+       (type_dependent_expression_p): Likewise.
+       (tsubst_copy, tsubst_copy_and_build): Handle IMPLICIT_CONV_EXPR
+       and CONVERT_EXPR.
+       * cp-tree.h (IMPLICIT_CONV_EXPR_DIRECT_INIT): New.
+
+2011-10-11  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       PR c++/50611
+       * pt.c (tsubst_copy_and_build): If (complain & tf_error) is false
+       do not call unqualified_name_lookup_error.
+
+2011-10-10  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       PR c++/50660
+       * call.c (conversion_null_warnings): Don't look through references.
+
+2011-10-09  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       PR c++/38980
+       * init.c (constant_value_1): Add bool parameter.
+       (decl_constant_value_safe): Add.
+       (integral_constant_value): Adjust.
+       (decl_constant_value): Adjust.
+       * cp-tree.h (decl_constant_value_safe): Declare.
+       * typeck.c (decay_conversion): Use decl_constant_value_safe.
+       * call.c (convert_like_real): Likewise.
+
+2011-10-09  Jakub Jelinek  <jakub@redhat.com>
+           Diego Novillo  <dnovillo@google.com>
+
+       * pt.c (reregister_specialization): Use htab_find instead of
+       htab_find_slot with INSERT.
+       (maybe_process_partial_specialization, lookup_template_class_1): Change
+       slot variable type to void ** to avoid aliasing problems.
+       (register_specialization): Likewise.  Use slot != NULL instead of
+       more expensive !optimize_specialization_lookup_p (tmpl) test.
+
+2011-10-08  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       PR c++/34927
+       * typeck2.c (abstract_virtuals_error_sfinae): Don't produce duplicate
+       inform messages in case of cloned destructor.
+
+2011-10-06  Jason Merrill  <jason@redhat.com>
+
+       PR c++/39164
+       * decl.c (grokfndecl): Diagnose redefinition of defaulted fn.
+
+2011-10-02  Jason Merrill  <jason@redhat.com>
+
+       * pt.c (tsubst_pack_expansion): Re-use ARGUMENT_PACK_SELECTs.
+       Change unsubstituted_packs to bool.
+
+       * parser.c (cp_parser_range_for): Don't try to deduce from {}
+       in a template.
+
+       PR c++/35722
+       Implement N2555 (expanding pack expansion to fixed parm list)
+       * pt.c (coerce_template_parms): Allow expanding a pack expansion
+       to a fixed-length argument list.
+       (unify_pack_expansion): Handle explicit args properly.
+       (unify) [TREE_VEC]: Handle pack expansions here.
+       [TYPE_ARGUMENT_PACK]: Not here.
+       (tsubst_pack_expansion): Don't try to do partial substitution.
+       (pack_deducible_p): New.
+       (fn_type_unification): Use it.
+       (find_parameter_packs_r): Take the TYPE_MAIN_VARIANT
+       of a type parameter.
+       (check_non_deducible_conversion): Split from type_unification_real.
+       (unify_one_argument): Split from type_unification_real...
+       (unify_pack_expansion): ...and here.  Drop call_args_p parm.
+       (type_unification_real, unify, more_specialized_fn): Adjust.
+
+       * class.c (fixed_type_or_null): Handle NSDMI.
+       * method.c (walk_field_subobs): Disable NSDMI noexcept checking
+       for now.
+
+2011-09-30  Jason Merrill  <jason@redhat.com>
+
+       * cp-tree.h (TREE_NEGATED_INT): Remove.
+       * semantics.c (finish_unary_op_expr): Don't set it.
+
+2011-09-30  Janis Johnson  <janisjo@codesourcery.com>
+
+       PR c++/44473
+       * mangle.c (write_type): Handle CV qualifiers for decimal classes.
+
+2011-09-26   Andi Kleen <ak@linux.intel.com>
+
+       * repo.c (finish_repo): Use HOST_WIDE_INT_PRINT_HEX_PURE.
+
+2011-09-28  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       PR c++/45278
+       * typeck.c (cp_build_binary_op): With -Wextra, warn for ordered
+       comparison of pointer with zero.
+
+2011-09-27  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       PR c++/31489
+       * parser.c (cp_parser_elaborated_type_specifier): For RECORD_TYPE,
+       set CLASSTYPE_DECLARED_CLASS.
+
+2011-09-27  Jakub Jelinek  <jakub@redhat.com>
+
+       * decl.c (duplicate_decls): If compatible stpcpy prototype
+       is seen, set implicit_built_in_decls[BUILT_IN_STPCPY].
+
+2011-09-26  Jason Merrill  <jason@redhat.com>
+
+       PR c++/45012
+       * pt.c (tsubst_copy_and_build) [CONST_DECL]: Don't pull out
+       constant value if we're still in a template.
+
+       PR c++/46105
+       * typeck.c (structural_comptypes): Ignore cv-quals on typename scope.
+
+       PR c++/50508
+       * semantics.c (cxx_eval_logical_expression): Use tree_int_cst_equal
+       rather than ==.
+
+2011-09-26  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       PR c++/45487
+       * error.c (dump_template_bindings): Separate bindings with semicolons
+       instead of commas.
+
+2011-09-26  Jason Merrill  <jason@redhat.com>
+
+       PR c++/50512
+       * call.c (compare_ics): Only consider rvaluedness_matches_p
+       if the target type is the same or it too differs in rvalueness.
+
+       PR c++/50523
+       * call.c (implicit_conversion): Mask out inappropriate LOOKUP
+       flags at the top of the function.
+
+       * pt.c (tsubst_copy) [PARM_DECL]: Handle 'this' in NSDMI.
+
+2011-09-26  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       * pt.c (convert_nontype_argument): Handle NULLPTR_TYPE.
+
+2011-09-26  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       PR c++/26747
+       * cp-gimplify.c (get_bc_label): Remove obsolete diagnostics.
+
+2011-09-25  Jason Merrill  <jason@redhat.com>
+
+       * parser.c (inject_this_parameter): Split out from
+       cp_parser_late_return_type_opt.
+       (cp_parser_class_specifier_1): Use it for NSDMIs.
+       * tree.c (bot_replace): Replace NSDMI 'this' with real 'this'.
+
+2011-09-24  Jason Merrill  <jason@redhat.com>
+
+       * except.c (expr_noexcept_p): Split out from finish_noexcept_expr.
+       * cp-tree.h: Declare it.
+       * method.c (walk_field_subobs): Use it.
+
+       * init.c (perform_member_init): Instantiate NSDMI here.
+       * pt.c (tsubst_decl) [FIELD_DECL]: Not here.
+
+       Handle deferred parsing of NSDMIs.
+       * parser.h (cp_unparsed_functions_entry): Add nsdmis field.
+       * parser.c (unparsed_nsdmis, cp_parser_save_nsdmi): New.
+       (cp_parser_late_parse_one_default_arg): Split out from
+       cp_parser_late_parsing_default_args.
+       (cp_parser_late_parsing_nsdmi): New.
+       (push_unparsed_function_queues): Set it.
+       (cp_parser_parameter_declaration): Save the '=' token.
+       (cp_parser_template_parameter): Likewise.
+       (cp_parser_default_argument): Call cp_parser_initializer
+       rather than cp_parser_initializer_clause.
+       (cp_parser_class_specifier_1): Parse unparsed_nsdmis.
+       (cp_parser_member_declaration): Handle nsdmis.
+       * decl2.c (grokfield): Handle DEFAULT_ARG for a function.
+
+       Implement C++11 non-static data member initializers.
+       * cp-tree.h (enum cpp_warn_str): Add CPP0X_NSDMI.
+       * error.c (maybe_warn_cpp0x): Handle it.
+       * call.c (convert_like_real) [ck_user]: Don't complain about
+       using an explicit constructor for direct-initialization.
+       * class.c (check_field_decl): Fix ancient typo.
+       (check_field_decls): NSDMIs make the default ctor non-trivial.
+       * decl.c (cp_finish_decl): Record NSDMI.
+       (grokdeclarator): Allow NSDMI.
+       * decl2.c (grokfield): Allow NSDMI.  Correct LOOKUP flags.
+       * init.c (perform_member_init): Use NSDMI.
+       * method.c (walk_field_subobs): Check for NSDMI.
+       * parser.c (cp_parser_member_declaration): Parse { } init.
+       * semantics.c (register_constexpr_fundef): Don't talk about
+       a return statement in a constexpr constructor.
+       (cxx_eval_call_expression): Check DECL_INITIAL instead of
+       DECL_SAVED_TREE.
+
+2011-09-24  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       PR c++/44267
+       * class.c (build_base_path): Add a tsubst_flags_t parameter.
+       (convert_to_base): Adjust call.
+       * typeck.c (build_class_member_access_expr,
+       get_member_function_from_ptrfunc, build_static_cast_1): Likewise.
+       * init.c (dfs_initialize_vtbl_ptrs, emit_mem_initializers): Likewise.
+       * method.c (do_build_copy_constructor, do_build_copy_assign): Likewise.
+       * rtti.c (build_dynamic_cast_1): Likewise.
+       * typeck2.c (build_scoped_ref, build_m_component_ref): Likewise.
+       * call.c (build_over_call, build_special_member_call): Likewise.
+       * cvt.c (cp_convert_to_pointer, convert_to_pointer_force,
+       build_up_reference): Likewise.
+       * cp-tree.h (build_base_path): Adjust declaration.
+
+2011-09-23  Jason Merrill  <jason@redhat.com>
+
+       Core 253 - allow const objects with no initializer or
+       user-provided default constructor if the defaulted constructor
+       initializes all the subobjects.
+       PR c++/20039
+       PR c++/42844
+       * class.c (default_init_uninitialized_part): New.
+       * cp-tree.h: Declare it.
+       * decl.c (check_for_uninitialized_const_var): Use it.
+       * init.c (perform_member_init): Likewise.
+       (build_new_1): Likewise.
+       * method.c (walk_field_subobs): Likewise.
+
+2011-09-23  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       PR c++/50258
+       * decl.c (check_static_variable_definition): Allow in-class
+       initialization of static data member of non-integral type in
+       permissive mode.
+
+2011-09-22  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       PR c++/50491
+       * semantics.c (potential_constant_expression_1): Handle USING_DECL.
+
+2011-09-22  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       PR c++/50371
+       * pt.c (invalid_nontype_parm_type_p): Handle NULLPTR_TYPE.
+
+2011-09-22  Jonathan Wakely  <jwakely.gcc@gmail.com>
+           Paolo Carlini  <paolo.carlini@oracle.com>
+
+       PR c++/50344
+       * friend.c (make_friend_class): cv-qualification is ok in a
+       friend declaration.
+
+2011-09-21  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       PR c++/50454
+       * decl.c (grokdeclarator): Consistently handle both __int128
+       and unsigned __int128 with -pedantic; suppress diagnostic in
+       system headers.
+
+2011-09-20  Jason Merrill  <jason@redhat.com>
+
+       * cp-tree.h (DECL_TEMPLOID_INSTANTIATION): New.
+       (DECL_GENERATED_P): New.
+       * class.c (finalize_literal_type_property): Use them.
+       * semantics.c (is_instantiation_of_constexpr): Likewise.
+       (register_constexpr_fundef): Likewise.
+
+       * call.c (convert_default_arg): Avoid redundant copy.
+       * tree.c (bot_manip): Copy everything.
+
+2011-09-20 Roberto Agostino Vitillo <ravitillo@lbl.gov>
+
+       * call.c (build_new_method_call_1): Use non-virtual lookup
+       for final virtual functions.
+
+2011-09-16  Jason Merrill  <jason@redhat.com>
+
+       PR c++/50424
+       * call.c (set_flags_from_callee): Split out from build_call_a.
+       * cp-tree.h: Declare it.
+       * tree.c (bot_manip): Call it.
+
+2011-09-15  Jason Merrill  <jason@redhat.com>
+
+       PR c++/50365
+       * parser.c (cp_parser_late_return_type_opt): Check quals parameter
+       for clearing current_class_ptr, too.
+
+2011-09-14   Diego Novillo  <dnovillo@google.com>
+
+       * name-lookup.c (lookup_arg_dependent): Use conditional
+       timevars.
+       * decl.c (xref_tag): Likewise.
+
+2011-09-14  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       PR c++/50391
+       * pt.c (regenerate_decl_from_template): Don't pass an error_mark_node
+       to build_exception_variant.
+
+2011-09-13  Dodji Seketeli  <dodji@redhat.com>
+
+       PR c++/48320
+       * pt.c (template_parameter_pack_p): Support TEMPLATE_PARM_INDEX
+       nodes.  Add a comment.
+       (arg_from_parm_pack_p):  New static function, factorized out from
+       tsubst_pack_expansion and extended to support non-type parameter
+       packs represented with TEMPLATE_PARM_INDEX nodes.
+       (tsubst_pack_expansion): Use arg_from_parm_pack_p.
+
+2011-09-12  Jason Merrill  <jason@redhat.com>
+
+       * pt.c (type_unification_real): Fix handling of DEDUCE_CONV
+       with no deducible template parameters.
+       * call.c (rejection_reason_code): Add rr_template_conversion.
+       (print_z_candidate): Handle it.
+       (template_conversion_rejection): New.
+       (build_user_type_conversion_1): Use it.
+
+       * call.c (merge_conversion_sequences): Set bad_p and user_conv_p
+       on all of the second conversion sequence.
+       (build_user_type_conversion_1): Set bad_p on the ck_user conv.
+       (convert_like_real): Handle bad ck_ref_bind with user_conv_p in the
+       first section.  Fix loop logic.
+       (initialize_reference): Call convert_like for diagnostics when
+       we have a (bad) conversion.
+
+       * call.c (convert_class_to_reference)
+       (convert_class_to_reference_1): Remove.
+       (reference_binding): Use build_user_type_conversion_1 instead.
+
+       * call.c (initialize_reference): Add flags parm.
+       * decl.c (grok_reference_init): Likewise.
+       (check_initializer): Pass it.
+       * typeck.c (convert_for_initialization): Likewise.
+       * cp-tree.h: Adjust.
+
+       * cp-tree.h (LOOKUP_NO_RVAL_BIND): New.
+       * call.c (conditional_conversion): Use it.
+       (reference_binding): Fix handling of xvalues.
+
+2011-09-09  Jason Merrill  <jason@redhat.com>
+
+       * call.c (implicit_conversion): Check BRACE_ENCLOSED_INITIALIZER_P
+       before forcing instantiation.
+
+2011-09-08  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       PR c++/50324
+       * typeck2.c (digest_init_r): Call complete_type_or_maybe_complain
+       instead of complete_type_or_else.
+
+2011-09-08  Dodji Seketeli  <dodji@redhat.com>
+
+       PR c++/33255 - Support -Wunused-local-typedefs warning
+       * name-lookup.c (pushdecl_maybe_friend_1): Use the new
+       record_locally_defined_typedef.
+       * decl.c (finish_function): Use the new
+       maybe_warn_unused_local_typedefs.
+       (grokfield): Use the new record_locally_defined_typedef.
+       * parser.c (lookup_name): Use the new maybe_record_typedef_use.
+
+2011-09-07  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       PR c++/50309
+       * decl.c (grokdeclarator): Check u.function.exception_specification
+       for error_mark_node.
+
+2011-09-07  Jason Merrill  <jason@redhat.com>
+
+       PR c++/50298
+       * parser.c (cp_parser_member_declaration): Don't require a constant
+       rvalue here in C++0x.
+
+       * pt.c (type_unification_real): Correct complain arg for tsubsting
+       default template args.
+
+       * pt.c (tsubst_aggr_type): Check TYPE_P before tsubsting.
+
+2011-09-06  Jason Merrill  <jason@redhat.com>
+
+       PR c++/50296
+       * semantics.c (register_constexpr_fundef): Call is_valid_constexpr_fn.
+       (cx_check_missing_mem_inits): Handle bases and empty trivial members.
+       (validate_constexpr_fundecl): Remove.
+       * decl.c (start_preparsed_function): Don't call it.
+       * cp-tree.h: Don't declare it.
+
+2011-09-04  Jason Merrill  <jason@redhat.com>
+
+       PR c++/49267
+       * call.c (reference_binding): Don't set is_lvalue for an rvalue
+       reference rfrom.
+
+       PR c++/49267
+       PR c++/49458
+       DR 1328
+       * call.c (reference_binding): Set rvaluedness_matches_p properly
+       for reference to function conversion ops.
+       (compare_ics): Adjust.
+
+       * class.c (trivial_default_constructor_is_constexpr): Rename from
+       synthesized_default_constructor_is_constexpr.
+       (type_has_constexpr_default_constructor): Adjust.
+       (add_implicitly_declared_members): Call it instead.
+       (explain_non_literal_class): Explain about non-constexpr default ctor.
+       * cp-tree.h: Adjust.
+       * method.c (synthesized_method_walk): Adjust.
+       * semantics.c (explain_invalid_constexpr_fn): Handle defaulted
+       functions, too.
+
+       PR c++/50248
+       Core 1358
+       * init.c (perform_member_init): Don't diagnose missing inits here.
+       (emit_mem_initializers): Or here.
+       * method.c (process_subob_fn): Don't instantiate constexpr ctors.
+       * semantics.c (cx_check_missing_mem_inits): New.
+       (explain_invalid_constexpr_fn): Call it.
+       (register_constexpr_fundef): Likewise.  Leave
+       DECL_DECLARED_CONSTEXPR_P set when the body is unsuitable.
+       (cxx_eval_call_expression): Adjust diagnostics.
+       (cxx_eval_constant_expression): Catch use of 'this' in a constructor.
+
+2011-08-30  Jason Merrill  <jason@redhat.com>
+
+       PR c++/50084
+       * cp-tree.h (cp_decl_specifier_seq): Rename user_defined_type_p
+       to type_definition_p.
+       * parser.c (cp_parser_set_decl_spec_type): Likewise.
+       * decl.c (grokdeclarator): Check it.
+
+       PR c++/50089
+       * semantics.c (finish_id_expression): Use
+       current_nonlambda_class_type for qualified-ids.
+
+       PR c++/50114
+       * decl.c (poplevel): Disable for scope compatibility hack
+       in C++11 mode.
+
+       PR c++/50220
+       * semantics.c (add_capture): Call complete_type for copy.
+
+       PR c++/50234
+       * semantics.c (cxx_eval_component_reference): Handle
+       value-initialization for omitted initializers.
+
+2011-08-29  Jason Merrill  <jason@redhat.com>
+
+       PR c++/50224
+       * semantics.c (finish_id_expression): Mark captured variables used.
+
+2011-08-29  Jakub Jelinek  <jakub@redhat.com>
+           Jason Merrill  <jason@redhat.com>
+
+       PR c++/50207
+       * class.c (finish_struct_1): Complain if the first field is
+       artificial.
+
+2011-08-29  Jason Merrill  <jason@redhat.com>
+
+       PR c++/50209
+       Core DR 994
+       * parser.c (cp_parser_default_argument): Use
+       cp_parser_initializer_clause.
+       (cp_parser_late_parsing_default_args): Likewise.
+
+2011-08-26  Jason Merrill  <jason@redhat.com>
+
+       Core DR 342
+       PR c++/48582
+       * pt.c (check_valid_ptrmem_cst_expr): A null member pointer value
+       is valid in C++11.
+       (convert_nontype_argument): Likewise.  Implicitly convert nullptr
+       and do constant folding.
+       * mangle.c (write_template_arg_literal): Mangle null member
+       pointer values as 0.
+       * call.c (null_member_pointer_value_p): New.
+       * cp-tree.h: Declare it.
+
+2011-08-25  Jason Merrill  <jason@redhat.com>
+
+       * call.c (convert_like_real): Remove redundant complain checks.
+
+       PR c++/50157
+       * call.c (convert_like_real): Exit early if bad and !tf_error.
+
+2011-08-23  Jason Merrill  <jason@redhat.com>
+
+       * typeck2.c (build_functional_cast): Don't try to avoid calling
+       build_value_init.
+       * pt.c (instantiate_class_template_1): Don't copy TYPE_HAS_* flags.
+
+2011-08-23  Jason Merrill  <jason@redhat.com>
+
+       PR c++/49045
+       Core 1321
+       * tree.c (dependent_name): New.
+       (cp_tree_equal): Two calls with the same dependent name are
+       equivalent even if the overload sets are different.
+
+2011-08-23  Jason Merrill  <jason@redhat.com>
+
+       * tree.c (build_target_expr): Set TREE_CONSTANT on
+       literal TARGET_EXPR if the value is constant.
+       * typeck2.c (build_functional_cast): Don't set it here.
+
+2011-08-23  Jason Merrill  <jason@redhat.com>
+
+       Core 903 (partial)
+       * call.c (null_ptr_cst_p): Only 0 qualifies in C++11.
+
+2011-08-23  Jason Merrill  <jason@redhat.com>
+
+       Core 975
+       * decl.c (cxx_init_decl_processing): Initialize
+       dependent_lambda_return_type_node.
+       * cp-tree.h (cp_tree_index): Add CPTI_DEPENDENT_LAMBDA_RETURN_TYPE.
+       (dependent_lambda_return_type_node): Define.
+       (DECLTYPE_FOR_LAMBDA_RETURN): Remove.
+       * semantics.c (lambda_return_type): Handle overloaded function.
+       Use dependent_lambda_return_type_node instead of
+       DECLTYPE_FOR_LAMBDA_RETURN.
+       (apply_lambda_return_type): Don't check dependent_type_p.
+       * pt.c (tsubst_copy_and_build): Handle lambda return type deduction.
+       (instantiate_class_template_1): Likewise.
+       (tsubst): Don't use DECLTYPE_FOR_LAMBDA_RETURN.
+       * mangle.c (write_type): Likewise.
+       * typeck.c (structural_comptypes): Likewise.
+       (check_return_expr): Handle dependent_lambda_return_type_node.
+
+2011-08-23  Jason Merrill  <jason@redhat.com>
+
+       PR c++/50024
+       * semantics.c (maybe_constant_value): Don't try to fold { }.
+       * pt.c (build_non_dependent_expr): Don't wrap { }.
+       * init.c (build_value_init): Allow scalar value-init in templates.
+
+2011-08-23  Jason Merrill  <jason@redhat.com>
+
+       * semantics.c (potential_constant_expression_1): Allow 'this'.
+
+2011-08-23  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/50158
+       * typeck.c (cp_build_modify_expr): Call mark_rvalue_use on rhs
+       if it has side-effects and needs to be preevaluated.
+
+2011-08-23  Siddhesh Poyarekar  <siddhesh.poyarekar@gmail.com>
+
+       PR c++/50055
+       * except.c (begin_eh_spec_block): Build EH_SPEC block on the
+       same line as the function.
+
+2011-08-23  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/46862
+       * class.c (finish_struct_1): If TYPE_TRANSPARENT_AGGR is set on a type
+       which doesn't have any fields, clear it and diagnose.
+
+2011-08-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+           Marc Glisse  <marc.glisse@normalesup.org>
+
+       PR libstdc++-v3/1773
+       * mangle.c (decl_mangling_context): Call
+       targetm.cxx.decl_mangling_context.
+       (write_unscoped_name): Use decl_mangling_context.
+
 2011-08-18  Dodji Seketeli  <dodji@redhat.com>
 
        PR c++/45625