FreeBSD/contrib/gcc/cp/class.c
/* If either current_class_type or one of its enclosing classes are derived
   from T, return the appropriate type.  Used to determine how we found
   something via unqualified lookup.  */
If either current_class_type or one of its enclosing classes are derived
from T, return the appropriate type.  Used to determine how we found
something via unqualified lookup.
If either current_class_type or one of its enclosing classes are derived from T return the appropriate type . Used to determine how we found something via unqualified lookup .
tree
currently_open_derived_class (tree t)
{
  int i;
  if (dependent_type_p (t))
    return NULL_TREE;
  if (!current_class_type)
    return NULL_TREE;
  if (DERIVED_FROM_P (t, current_class_type))
    return current_class_type;
  for (i = current_class_depth - 1; i > 0; --i)
    {
      if (current_class_stack[i].hidden)
	break;
      if (DERIVED_FROM_P (t, current_class_stack[i].type))
	return current_class_stack[i].type;
    }
  return NULL_TREE;
}
tree currently_open_derived_class ( tree t ) { int i ; if ( dependent_type_p ( t ) ) return NULL_TREE ; if ( ! current_class_type ) return NULL_TREE ; if ( DERIVED_FROM_P ( t , current_class_type ) ) return current_class_type ; for ( i = current_class_depth - 1 ; i > 0 ; -- i ) { if ( current_class_stack [ i ] . hidden ) break ; if ( DERIVED_FROM_P ( t , current_class_stack [ i ] . type ) ) return current_class_stack [ i ] . type ; } return NULL_TREE ; }
If either current_class_type or one of its enclosing classes are derived
from T, return the appropriate type.
If either current_class_type or one of its enclosing classes are derived from T return the appropriate type .
/* The bases of a dependent type are unknown.  */