FreeBSD/contrib/gcc/cp/class.c
/* When entering a class scope, all enclosing class scopes' names with
   static meaning (static variables, static functions, types and
   enumerators) have to be visible.  This recursive function calls
   pushclass for all enclosing class contexts until global or a local
   scope is reached.  TYPE is the enclosed class.  */
When entering a class scope, all enclosing class scopes' names with
static meaning (static variables, static functions, types and
enumerators) have to be visible.  This recursive function calls
pushclass for all enclosing class contexts until global or a local
scope is reached.  TYPE is the enclosed class.
When entering a class scope all enclosing class scopes ' names with static meaning ( static variables static functions types and enumerators ) have to be visible . This recursive function calls pushclass for all enclosing class contexts until global or a local scope is reached . TYPE is the enclosed class .
void
push_nested_class (tree type)
{
  tree context;
  if (type == NULL_TREE
      || type == error_mark_node
      || TREE_CODE (type) == NAMESPACE_DECL
      || ! IS_AGGR_TYPE (type)
      || TREE_CODE (type) == TEMPLATE_TYPE_PARM
      || TREE_CODE (type) == BOUND_TEMPLATE_TEMPLATE_PARM)
    return;
  context = DECL_CONTEXT (TYPE_MAIN_DECL (type));
  if (context && CLASS_TYPE_P (context))
    push_nested_class (context);
  pushclass (type);
}
void push_nested_class ( tree type ) { tree context ; if ( type == NULL_TREE || type == error_mark_node || TREE_CODE ( type ) == NAMESPACE_DECL || ! IS_AGGR_TYPE ( type ) || TREE_CODE ( type ) == TEMPLATE_TYPE_PARM || TREE_CODE ( type ) == BOUND_TEMPLATE_TEMPLATE_PARM ) return ; context = DECL_CONTEXT ( TYPE_MAIN_DECL ( type ) ) ; if ( context && CLASS_TYPE_P ( context ) ) push_nested_class ( context ) ; pushclass ( type ) ; }
When entering a class scope, all enclosing class scopes' names with
static meaning (static variables, static functions, types and
enumerators) have to be visible.
When entering a class scope all enclosing class scopes ' names with static meaning ( static variables static functions types and enumerators ) have to be visible .
/* A namespace might be passed in error cases, like A::B:C.  */