contrib/gcc-4.4/gcc/cp/call.c
/* The CANDS are the set of candidates that were considered for
   overload resolution.  Return the set of viable candidates.  If none
   of the candidates were viable, set *ANY_VIABLE_P to true.  STRICT_P
   is true if a candidate should be considered viable only if it is
   strictly viable.  */
The CANDS are the set of candidates that were considered for
overload resolution.  Return the set of viable candidates.  If none
of the candidates were viable, set *ANY_VIABLE_P to true.  STRICT_P
is true if a candidate should be considered viable only if it is
strictly viable.
The CANDS are the set of candidates that were considered for overload resolution . Return the set of viable candidates . If none of the candidates were viable set * ANY_VIABLE_P to true . STRICT_P is true if a candidate should be considered viable only if it is strictly viable .
static struct z_candidate*
splice_viable (struct z_candidate *cands,
	       bool strict_p,
	       bool *any_viable_p)
{
  struct z_candidate *viable;
  struct z_candidate **last_viable;
  struct z_candidate **cand;
  viable = NULL;
  last_viable = &viable;
  *any_viable_p = false;
  cand = &cands;
  while (*cand)
    {
      struct z_candidate *c = *cand;
      if (strict_p ? c->viable == 1 : c->viable)
	{
	  *last_viable = c;
	  *cand = c->next;
	  c->next = NULL;
	  last_viable = &c->next;
	  *any_viable_p = true;
	}
      else
	cand = &c->next;
    }
  return viable ? viable : cands;
}
static struct z_candidate * splice_viable ( struct z_candidate * cands , bool strict_p , bool * any_viable_p ) { struct z_candidate * viable ; struct z_candidate * * last_viable ; struct z_candidate * * cand ; viable = NULL ; last_viable = & viable ; * any_viable_p = false ; cand = & cands ; while ( * cand ) { struct z_candidate * c = * cand ; if ( strict_p ? c -> viable == 1 : c -> viable ) { * last_viable = c ; * cand = c -> next ; c -> next = NULL ; last_viable = & c -> next ; * any_viable_p = true ; } else cand = & c -> next ; } return viable ? viable : cands ; }
The CANDS are the set of candidates that were considered for
overload resolution.
The CANDS are the set of candidates that were considered for overload resolution .