FreeBSD/contrib/gcc/cp/call.c
/* A reference of the indicated TYPE is being bound directly to the
   expression represented by the implicit conversion sequence CONV.
   Return a conversion sequence for this binding.  */
A reference of the indicated TYPE is being bound directly to the
expression represented by the implicit conversion sequence CONV.
Return a conversion sequence for this binding.
A reference of the indicated TYPE is being bound directly to the expression represented by the implicit conversion sequence CONV . Return a conversion sequence for this binding .
static conversion *
direct_reference_binding (tree type, conversion *conv)
{
  tree t;
  gcc_assert (TREE_CODE (type) == REFERENCE_TYPE);
  gcc_assert (TREE_CODE (conv->type) != REFERENCE_TYPE);
  t = TREE_TYPE (type);
  if (!same_type_ignoring_top_level_qualifiers_p (t, conv->type))
    {
      conv = build_conv (ck_base, t, conv);
      conv->need_temporary_p = false;
    }
  return build_conv (ck_ref_bind, type, conv);
}
static conversion * direct_reference_binding ( tree type , conversion * conv ) { tree t ; gcc_assert ( TREE_CODE ( type ) == REFERENCE_TYPE ) ; gcc_assert ( TREE_CODE ( conv -> type ) != REFERENCE_TYPE ) ; t = TREE_TYPE ( type ) ; if ( ! same_type_ignoring_top_level_qualifiers_p ( t , conv -> type ) ) { conv = build_conv ( ck_base , t , conv ) ; conv -> need_temporary_p = false ; } return build_conv ( ck_ref_bind , type , conv ) ; }
A reference of the indicated TYPE is being bound directly to the
expression represented by the implicit conversion sequence CONV.
A reference of the indicated TYPE is being bound directly to the expression represented by the implicit conversion sequence CONV .
/* [over.ics.rank]

     When a parameter of reference type binds directly
     (_dcl.init.ref_) to an argument expression, the implicit
     conversion sequence is the identity conversion, unless the
     argument expression has a type that is a derived class of the
     parameter type, in which case the implicit conversion sequence is
     a derived-to-base Conversion.

     If the parameter binds directly to the result of applying a
     conversion function to the argument expression, the implicit
     conversion sequence is a user-defined conversion sequence
     (_over.ics.user_), with the second standard conversion sequence
     either an identity conversion or, if the conversion function
     returns an entity of a type that is a derived class of the
     parameter type, a derived-to-base conversion.  */ /* Represent the derived-to-base conversion.  */ /* We will actually be binding to the base-class subobject in
	 the derived class, so we mark this conversion appropriately.
	 That way, convert_like knows not to generate a temporary.  */