+2011-10-23 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/50841
+ Revert:
+ 2011-10-23 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/50810
+ * typeck2.c (check_narrowing): Adjust OPT_Wnarrowing diagnostics.
+ (digest_init_r): Call check_narrowing irrespective of the C++ dialect.
+ * decl.c (check_initializer): Likewise.
+ * semantics.c (finish_compound_literal): Likewise.
+
+2011-10-23 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/50810
+ * typeck2.c (check_narrowing): Adjust OPT_Wnarrowing diagnostics.
+ (digest_init_r): Call check_narrowing irrespective of the C++ dialect.
+ * decl.c (check_initializer): Likewise.
+ * semantics.c (finish_compound_literal): Likewise.
+
+2011-10-21 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/45385
+ * init.c (build_vec_init): Early return error_mark_node if
+ maxindex is -1.
+
+2011-10-21 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/31423
+ * typeck2.c (cxx_incomplete_type_diagnostic): Improve error message
+ for invalid use of member function.
+
+2011-10-21 Ville Voutilainen <ville.voutilainen@gmail.com>
+
+ PR c++/50811
+ * parser.c (cp_parser_class_head): Parse virt-specifiers
+ regardless of whether an id is present
+
+2011-10-20 Jason Merrill <jason@redhat.com>
+
+ PR c++/41449
+ * typeck2.c (split_nonconstant_init_1): Handle EH cleanup of
+ initialized subobjects.
+
+2011-10-19 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/13657
+ * class.c (instantiate_type): Fix error message.
+
+2011-10-19 Jason Merrill <jason@redhat.com>
+
+ PR c++/50793
+ * tree.c (bot_manip): Propagate AGGR_INIT_ZERO_FIRST.
+
+2011-10-19 Roland Stigge <stigge@antcom.de>
+
+ PR translation/49704
+ * semantics.c (potential_constant_expression_1): Use "AST" instead of
+ "ast" in sorry message.
+
+2011-10-19 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/38761
+ PR c++/40872
+ * decl.c (duplicate_decls, make_typename_type, grokdeclarator): Use
+ G_() in error message strings to facilitate translation.
+ * semantics.c (finish_id_expression): Likewise.
+ * parser.c (cp_parser_nested_name_specifier_opt,
+ cp_parser_parameter_declaration): Likewise.
+
+2011-10-18 Jason Merrill <jason@redhat.com>
+
+ PR c++/50531
+ * pt.c (instantiate_decl): Recognize when a function defaulted
+ outside the class is already instantiated.
+
+ PR c++/50742
+ * decl.c (check_previous_goto_1): Handle using-decl.
+
+2011-10-18 Jason Merrill <jason@redhat.com>
+
+ PR c++/50500
+ DR 1082
+ * class.c (type_has_user_declared_move_constructor): New.
+ (type_has_user_declared_move_assign): New.
+ (add_implicitly_declared_members): Add lazy copy ops
+ even if there's a move.
+ * method.c (lazily_declare_fn): Delete implicit copies
+ if there's a move.
+ (maybe_explain_implicit_delete): Explain this. Use inform rather
+ than error.
+ * cp-tree.h: Declare new fns.
+
+2011-10-18 Diego Novillo <dnovillo@google.com>
+
+ * parser.c: Remove ENABLE_CHECKING markers around debugging
+ routines.
+ (cp_lexer_dump_tokens): Add arguments START_TOKEN and CURR_TOKEN.
+ Make static
+ When printing CURR_TOKEN surround it in [[ ]].
+ Start printing at START_TOKEN.
+ Update all users.
+ (cp_debug_print_tree_if_set): New.
+ (cp_debug_print_context): New.
+ (cp_debug_print_context_stack): New.
+ (cp_debug_print_flag): New.
+ (cp_debug_print_unparsed_function): New.
+ (cp_debug_print_unparsed_queues): New.
+ (cp_debug_parser_tokens): New.
+ (cp_debug_parser): New.
+ (cp_lexer_start_debugging): Set cp_lexer_debug_stream to stderr.
+ (cp_lexer_stop_debugging): Set cp_lexer_debug_stream to NULL.
+ * parser.h (cp_lexer_dump_tokens): Remove declaration.
+ (cp_debug_parser): Declare.
+
+2011-10-17 Michael Spertus <mike_spertus@symantec.com>
+
+ * cp-tree.def: Add BASES as a new tree code.
+ * cp-tree.h (enum cp_trait_kind): Add CPTK_BASES, CPTK_DIRECT_BASES.
+ (BASES_TYPE, BASES_DIRECT): Define.
+ (calculate_bases, finish_bases, calculate_direct_bases): Declare.
+ * parser.c (cp_parser_trait_expr, cp_parser_template_argument_list,
+ (cp_parser_simple_type_specifier, cp_parser_save_nsdmi): Use them.
+ * pt.c (find_parameter_packs_r, tsubst_pack_expansion): Likewise.
+ * semantics.c (calculate_bases, finish_bases, calculate_direct_bases,
+ dfs_calculate_bases_pre, dfs_calculate_bases_post,
+ calculate_bases_helper): Define.
+
+2011-10-17 Jason Merrill <jason@redhat.com>
+
+ PR c++/50736
+ * parser.c (cp_parser_lambda_introducer): Check for more
+ invalid captures.
+
+2011-10-17 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/44524
+ * typeck.c (build_class_member_access_expr): Provide a better error
+ message for X.Y where X is a pointer to class type.
+ (finish_class_member_access_expr): Likewise.
+
+2011-10-15 Tom Tromey <tromey@redhat.com>
+ Dodji Seketeli <dodji@redhat.com>
+
+ * error.c (cp_diagnostic_starter): Pass the relevant location to
+ diagnostic_report_current_module.
+ (cp_diagnostic_finalizer): Call virt_loc_aware_diagnostic_finalizer.
+
+2011-10-17 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/48489
+ * typeck.c (finish_class_member_access_expr): Fix error call
+ for TREE_CODE (access_path) == TREE_BINFO.
+
+2011-10-15 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/50732
+ * semantics.c (finish_trait_expr): Do not try to instantiate the
+ the base type of an __is_base_of trait.
+ (check_trait_type): Return a tree; use complete_type_or_else.
+
+2011-10-14 Jason Merrill <jason@redhat.com>
+
+ PR c++/50563
+ * parser.c (cp_parser_cache_group): Handle end==CPP_COMMA.
+ (cp_parser_save_nsdmi): Pass it.
+
+ PR c++/50707
+ * method.c (walk_field_subobs): Check for NSDMI before
+ complaining about uninitialized fields.
+
+ * pt.c (tsubst_decl) [FIELD_DECL]: Use void_zero_node
+ instead of error_mark_node as a placeholder.
+
+2011-10-14 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/38174
+ * call.c (add_builtin_candidate): If two pointers have a composite
+ pointer type, generate a single candidate with that type.
+
+2011-10-13 Jason Merrill <jason@redhat.com>
+
+ PR c++/50614
+ * cp-tree.h (VAR_TEMPL_TYPE_FIELD_OR_FUNCTION_DECL_CHECK): New.
+ (DECL_TEMPLATE_INFO): Use it.
+ * pt.c (tsubst_decl) [FIELD_DECL]: Set DECL_TEMPLATE_INFO
+ if the decl has an NSDMI.
+ * init.c (perform_member_init): Use it.
+
+ PR c++/50437
+ * cp-tree.h (struct tree_lambda_expr): Add closure field.
+ (LAMBDA_EXPR_CLOSURE): New.
+ * pt.c (tsubst_copy_and_build) [LAMBDA_EXPR]: Likewise.
+ * semantics.c (build_lambda_object): Use it instead of TREE_TYPE.
+ (begin_lambda_type, lambda_function, add_capture): Likewise.
+ (add_default_capture, lambda_expr_this_capture): Likewise.
+
+2011-10-13 Diego Novillo <dnovillo@google.com>
+
+ * cp-tree.h (struct language_function): Rename in_function_try_handler
+ to x_in_function_try_handler.
+ Rename in_base_initializer to x_in_base_initializer.
+ Update all users.
+
+2011-10-13 Diego Novillo <dnovillo@google.com>
+
+ * class.c (sorted_fields_type_new): Factor out of ...
+ (finish_struct_1): ... here.
+
+2011-10-13 Jason Merrill <jason@redhat.com>
+
+ PR c++/50618
+ * init.c (expand_aggr_init_1): Don't zero-initialize virtual
+ bases of a base subobject.
+
+2011-10-12 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/50594
+ * decl.c (cxx_init_decl_processing): Add
+ __attribute__((externally_visible)) to operator new and
+ operator delete library fn.
+
+2011-10-11 Michael Meissner <meissner@linux.vnet.ibm.com>
+
+ * decl.c (duplicate_decls): Delete old interface with two parallel
+ arrays to hold standard builtin declarations, and replace it with
+ a function based interface that can support creating builtins on
+ the fly in the future. Change all uses, and poison the old
+ names. Make sure 0 is not a legitimate builtin index.
+ * except.c (build_eh_type_type): Ditto.
+ (choose_personality_routine): Ditto.
+ * semantics.c (finish_omp_atomic): Ditto.
+ (finish_omp_barrier): Ditto.
+ (finish_omp_flush): Ditto.
+ (finish_omp_taskwait): Ditto.
+
+2011-10-11 Jason Merrill <jason@redhat.com>
+
+ PR c++/49855
+ PR c++/49896
+ * cp-tree.def (IMPLICIT_CONV_EXPR): New.
+ * call.c (perform_implicit_conversion_flags): Build it
+ instead of NOP_EXPR.
+ * cp-objcp-common.c (cp_common_init_ts): It's typed.
+ * cxx-pretty-print.c (pp_cxx_cast_expression): Handle it.
+ (pp_cxx_expression): Likewise.
+ * error.c (dump_expr): Likewise.
+ * semantics.c (potential_constant_expression_1): Likewise.
+ * tree.c (cp_tree_equal): Likewise.
+ (cp_walk_subtrees): Likewise.
+ * pt.c (iterative_hash_template_arg): Likewise.
+ (for_each_template_parm_r): Likewise.
+ (type_dependent_expression_p): Likewise.
+ (tsubst_copy, tsubst_copy_and_build): Handle IMPLICIT_CONV_EXPR
+ and CONVERT_EXPR.
+ * cp-tree.h (IMPLICIT_CONV_EXPR_DIRECT_INIT): New.
+
+2011-10-11 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/50611
+ * pt.c (tsubst_copy_and_build): If (complain & tf_error) is false
+ do not call unqualified_name_lookup_error.
+
+2011-10-10 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/50660
+ * call.c (conversion_null_warnings): Don't look through references.
+
+2011-10-09 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/38980
+ * init.c (constant_value_1): Add bool parameter.
+ (decl_constant_value_safe): Add.
+ (integral_constant_value): Adjust.
+ (decl_constant_value): Adjust.
+ * cp-tree.h (decl_constant_value_safe): Declare.
+ * typeck.c (decay_conversion): Use decl_constant_value_safe.
+ * call.c (convert_like_real): Likewise.
+
+2011-10-09 Jakub Jelinek <jakub@redhat.com>
+ Diego Novillo <dnovillo@google.com>
+
+ * pt.c (reregister_specialization): Use htab_find instead of
+ htab_find_slot with INSERT.
+ (maybe_process_partial_specialization, lookup_template_class_1): Change
+ slot variable type to void ** to avoid aliasing problems.
+ (register_specialization): Likewise. Use slot != NULL instead of
+ more expensive !optimize_specialization_lookup_p (tmpl) test.
+
+2011-10-08 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/34927
+ * typeck2.c (abstract_virtuals_error_sfinae): Don't produce duplicate
+ inform messages in case of cloned destructor.
+
+2011-10-06 Jason Merrill <jason@redhat.com>
+
+ PR c++/39164
+ * decl.c (grokfndecl): Diagnose redefinition of defaulted fn.
+
+2011-10-02 Jason Merrill <jason@redhat.com>
+
+ * pt.c (tsubst_pack_expansion): Re-use ARGUMENT_PACK_SELECTs.
+ Change unsubstituted_packs to bool.
+
+ * parser.c (cp_parser_range_for): Don't try to deduce from {}
+ in a template.
+
+ PR c++/35722
+ Implement N2555 (expanding pack expansion to fixed parm list)
+ * pt.c (coerce_template_parms): Allow expanding a pack expansion
+ to a fixed-length argument list.
+ (unify_pack_expansion): Handle explicit args properly.
+ (unify) [TREE_VEC]: Handle pack expansions here.
+ [TYPE_ARGUMENT_PACK]: Not here.
+ (tsubst_pack_expansion): Don't try to do partial substitution.
+ (pack_deducible_p): New.
+ (fn_type_unification): Use it.
+ (find_parameter_packs_r): Take the TYPE_MAIN_VARIANT
+ of a type parameter.
+ (check_non_deducible_conversion): Split from type_unification_real.
+ (unify_one_argument): Split from type_unification_real...
+ (unify_pack_expansion): ...and here. Drop call_args_p parm.
+ (type_unification_real, unify, more_specialized_fn): Adjust.
+
+ * class.c (fixed_type_or_null): Handle NSDMI.
+ * method.c (walk_field_subobs): Disable NSDMI noexcept checking
+ for now.
+
+2011-09-30 Jason Merrill <jason@redhat.com>
+
+ * cp-tree.h (TREE_NEGATED_INT): Remove.
+ * semantics.c (finish_unary_op_expr): Don't set it.
+
+2011-09-30 Janis Johnson <janisjo@codesourcery.com>
+
+ PR c++/44473
+ * mangle.c (write_type): Handle CV qualifiers for decimal classes.
+
+2011-09-26 Andi Kleen <ak@linux.intel.com>
+
+ * repo.c (finish_repo): Use HOST_WIDE_INT_PRINT_HEX_PURE.
+
+2011-09-28 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/45278
+ * typeck.c (cp_build_binary_op): With -Wextra, warn for ordered
+ comparison of pointer with zero.
+
+2011-09-27 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/31489
+ * parser.c (cp_parser_elaborated_type_specifier): For RECORD_TYPE,
+ set CLASSTYPE_DECLARED_CLASS.
+
+2011-09-27 Jakub Jelinek <jakub@redhat.com>
+
+ * decl.c (duplicate_decls): If compatible stpcpy prototype
+ is seen, set implicit_built_in_decls[BUILT_IN_STPCPY].
+
+2011-09-26 Jason Merrill <jason@redhat.com>
+
+ PR c++/45012
+ * pt.c (tsubst_copy_and_build) [CONST_DECL]: Don't pull out
+ constant value if we're still in a template.
+
+ PR c++/46105
+ * typeck.c (structural_comptypes): Ignore cv-quals on typename scope.
+
+ PR c++/50508
+ * semantics.c (cxx_eval_logical_expression): Use tree_int_cst_equal
+ rather than ==.
+
+2011-09-26 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/45487
+ * error.c (dump_template_bindings): Separate bindings with semicolons
+ instead of commas.
+
+2011-09-26 Jason Merrill <jason@redhat.com>
+
+ PR c++/50512
+ * call.c (compare_ics): Only consider rvaluedness_matches_p
+ if the target type is the same or it too differs in rvalueness.
+
+ PR c++/50523
+ * call.c (implicit_conversion): Mask out inappropriate LOOKUP
+ flags at the top of the function.
+
+ * pt.c (tsubst_copy) [PARM_DECL]: Handle 'this' in NSDMI.
+
+2011-09-26 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * pt.c (convert_nontype_argument): Handle NULLPTR_TYPE.
+
+2011-09-26 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/26747
+ * cp-gimplify.c (get_bc_label): Remove obsolete diagnostics.
+
+2011-09-25 Jason Merrill <jason@redhat.com>
+
+ * parser.c (inject_this_parameter): Split out from
+ cp_parser_late_return_type_opt.
+ (cp_parser_class_specifier_1): Use it for NSDMIs.
+ * tree.c (bot_replace): Replace NSDMI 'this' with real 'this'.
+
+2011-09-24 Jason Merrill <jason@redhat.com>
+
+ * except.c (expr_noexcept_p): Split out from finish_noexcept_expr.
+ * cp-tree.h: Declare it.
+ * method.c (walk_field_subobs): Use it.
+
+ * init.c (perform_member_init): Instantiate NSDMI here.
+ * pt.c (tsubst_decl) [FIELD_DECL]: Not here.
+
+ Handle deferred parsing of NSDMIs.
+ * parser.h (cp_unparsed_functions_entry): Add nsdmis field.
+ * parser.c (unparsed_nsdmis, cp_parser_save_nsdmi): New.
+ (cp_parser_late_parse_one_default_arg): Split out from
+ cp_parser_late_parsing_default_args.
+ (cp_parser_late_parsing_nsdmi): New.
+ (push_unparsed_function_queues): Set it.
+ (cp_parser_parameter_declaration): Save the '=' token.
+ (cp_parser_template_parameter): Likewise.
+ (cp_parser_default_argument): Call cp_parser_initializer
+ rather than cp_parser_initializer_clause.
+ (cp_parser_class_specifier_1): Parse unparsed_nsdmis.
+ (cp_parser_member_declaration): Handle nsdmis.
+ * decl2.c (grokfield): Handle DEFAULT_ARG for a function.
+
+ Implement C++11 non-static data member initializers.
+ * cp-tree.h (enum cpp_warn_str): Add CPP0X_NSDMI.
+ * error.c (maybe_warn_cpp0x): Handle it.
+ * call.c (convert_like_real) [ck_user]: Don't complain about
+ using an explicit constructor for direct-initialization.
+ * class.c (check_field_decl): Fix ancient typo.
+ (check_field_decls): NSDMIs make the default ctor non-trivial.
+ * decl.c (cp_finish_decl): Record NSDMI.
+ (grokdeclarator): Allow NSDMI.
+ * decl2.c (grokfield): Allow NSDMI. Correct LOOKUP flags.
+ * init.c (perform_member_init): Use NSDMI.
+ * method.c (walk_field_subobs): Check for NSDMI.
+ * parser.c (cp_parser_member_declaration): Parse { } init.
+ * semantics.c (register_constexpr_fundef): Don't talk about
+ a return statement in a constexpr constructor.
+ (cxx_eval_call_expression): Check DECL_INITIAL instead of
+ DECL_SAVED_TREE.
+
+2011-09-24 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/44267
+ * class.c (build_base_path): Add a tsubst_flags_t parameter.
+ (convert_to_base): Adjust call.
+ * typeck.c (build_class_member_access_expr,
+ get_member_function_from_ptrfunc, build_static_cast_1): Likewise.
+ * init.c (dfs_initialize_vtbl_ptrs, emit_mem_initializers): Likewise.
+ * method.c (do_build_copy_constructor, do_build_copy_assign): Likewise.
+ * rtti.c (build_dynamic_cast_1): Likewise.
+ * typeck2.c (build_scoped_ref, build_m_component_ref): Likewise.
+ * call.c (build_over_call, build_special_member_call): Likewise.
+ * cvt.c (cp_convert_to_pointer, convert_to_pointer_force,
+ build_up_reference): Likewise.
+ * cp-tree.h (build_base_path): Adjust declaration.
+
+2011-09-23 Jason Merrill <jason@redhat.com>
+
+ Core 253 - allow const objects with no initializer or
+ user-provided default constructor if the defaulted constructor
+ initializes all the subobjects.
+ PR c++/20039
+ PR c++/42844
+ * class.c (default_init_uninitialized_part): New.
+ * cp-tree.h: Declare it.
+ * decl.c (check_for_uninitialized_const_var): Use it.
+ * init.c (perform_member_init): Likewise.
+ (build_new_1): Likewise.
+ * method.c (walk_field_subobs): Likewise.
+
+2011-09-23 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/50258
+ * decl.c (check_static_variable_definition): Allow in-class
+ initialization of static data member of non-integral type in
+ permissive mode.
+
+2011-09-22 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/50491
+ * semantics.c (potential_constant_expression_1): Handle USING_DECL.
+
+2011-09-22 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/50371
+ * pt.c (invalid_nontype_parm_type_p): Handle NULLPTR_TYPE.
+
+2011-09-22 Jonathan Wakely <jwakely.gcc@gmail.com>
+ Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/50344
+ * friend.c (make_friend_class): cv-qualification is ok in a
+ friend declaration.
+
+2011-09-21 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/50454
+ * decl.c (grokdeclarator): Consistently handle both __int128
+ and unsigned __int128 with -pedantic; suppress diagnostic in
+ system headers.
+
+2011-09-20 Jason Merrill <jason@redhat.com>
+
+ * cp-tree.h (DECL_TEMPLOID_INSTANTIATION): New.
+ (DECL_GENERATED_P): New.
+ * class.c (finalize_literal_type_property): Use them.
+ * semantics.c (is_instantiation_of_constexpr): Likewise.
+ (register_constexpr_fundef): Likewise.
+
+ * call.c (convert_default_arg): Avoid redundant copy.
+ * tree.c (bot_manip): Copy everything.
+
+2011-09-20 Roberto Agostino Vitillo <ravitillo@lbl.gov>
+
+ * call.c (build_new_method_call_1): Use non-virtual lookup
+ for final virtual functions.
+
+2011-09-16 Jason Merrill <jason@redhat.com>
+
+ PR c++/50424
+ * call.c (set_flags_from_callee): Split out from build_call_a.
+ * cp-tree.h: Declare it.
+ * tree.c (bot_manip): Call it.
+
+2011-09-15 Jason Merrill <jason@redhat.com>
+
+ PR c++/50365
+ * parser.c (cp_parser_late_return_type_opt): Check quals parameter
+ for clearing current_class_ptr, too.
+
+2011-09-14 Diego Novillo <dnovillo@google.com>
+
+ * name-lookup.c (lookup_arg_dependent): Use conditional
+ timevars.
+ * decl.c (xref_tag): Likewise.
+
+2011-09-14 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/50391
+ * pt.c (regenerate_decl_from_template): Don't pass an error_mark_node
+ to build_exception_variant.
+
+2011-09-13 Dodji Seketeli <dodji@redhat.com>
+
+ PR c++/48320
+ * pt.c (template_parameter_pack_p): Support TEMPLATE_PARM_INDEX
+ nodes. Add a comment.
+ (arg_from_parm_pack_p): New static function, factorized out from
+ tsubst_pack_expansion and extended to support non-type parameter
+ packs represented with TEMPLATE_PARM_INDEX nodes.
+ (tsubst_pack_expansion): Use arg_from_parm_pack_p.
+
2011-09-12 Jason Merrill <jason@redhat.com>
+ * pt.c (type_unification_real): Fix handling of DEDUCE_CONV
+ with no deducible template parameters.
+ * call.c (rejection_reason_code): Add rr_template_conversion.
+ (print_z_candidate): Handle it.
+ (template_conversion_rejection): New.
+ (build_user_type_conversion_1): Use it.
+
+ * call.c (merge_conversion_sequences): Set bad_p and user_conv_p
+ on all of the second conversion sequence.
+ (build_user_type_conversion_1): Set bad_p on the ck_user conv.
+ (convert_like_real): Handle bad ck_ref_bind with user_conv_p in the
+ first section. Fix loop logic.
+ (initialize_reference): Call convert_like for diagnostics when
+ we have a (bad) conversion.
+
+ * call.c (convert_class_to_reference)
+ (convert_class_to_reference_1): Remove.
+ (reference_binding): Use build_user_type_conversion_1 instead.
+
* call.c (initialize_reference): Add flags parm.
* decl.c (grok_reference_init): Likewise.
(check_initializer): Pass it.