FreeBSD/contrib/gcc/cp/call.c
/* We build the ICS for an implicit object parameter as a pointer
   conversion sequence.  However, such a sequence should be compared
   as if it were a reference conversion sequence.  If ICS is the
   implicit conversion sequence for an implicit object parameter,
   modify it accordingly.  */
We build the ICS for an implicit object parameter as a pointer
conversion sequence.  However, such a sequence should be compared
as if it were a reference conversion sequence.  If ICS is the
implicit conversion sequence for an implicit object parameter,
modify it accordingly.
We build the ICS for an implicit object parameter as a pointer conversion sequence . However such a sequence should be compared as if it were a reference conversion sequence . If ICS is the implicit conversion sequence for an implicit object parameter modify it accordingly .
static void
maybe_handle_implicit_object (conversion **ics)
{
  if ((*ics)->this_p)
    {
      conversion *t = *ics;
      tree reference_type;
      reference_type = TREE_TYPE (t->type);
      reference_type = build_reference_type (reference_type);
      if (t->kind == ck_qual)
	t = t->u.next;
      if (t->kind == ck_ptr)
	t = t->u.next;
      t = build_identity_conv (TREE_TYPE (t->type), NULL_TREE);
      t = direct_reference_binding (reference_type, t);
      *ics = t;
    }
}
static void maybe_handle_implicit_object ( conversion * * ics ) { if ( ( * ics ) -> this_p ) { conversion * t = * ics ; tree reference_type ; reference_type = TREE_TYPE ( t -> type ) ; reference_type = build_reference_type ( reference_type ) ; if ( t -> kind == ck_qual ) t = t -> u . next ; if ( t -> kind == ck_ptr ) t = t -> u . next ; t = build_identity_conv ( TREE_TYPE ( t -> type ) , NULL_TREE ) ; t = direct_reference_binding ( reference_type , t ) ; * ics = t ; } }
We build the ICS for an implicit object parameter as a pointer
conversion sequence.
We build the ICS for an implicit object parameter as a pointer conversion sequence .
/* [over.match.funcs]

	 For non-static member functions, the type of the
	 implicit object parameter is "reference to cv X"
	 where X is the class of which the function is a
	 member and cv is the cv-qualification on the member
	 function declaration.  */ /* The `this' parameter is a pointer to a class type.  Make the
	 implicit conversion talk about a reference to that same class
	 type.  */