FreeBSD/contrib/gcc/cp/decl.c
/* VAR is a VAR_DECL.  If its type is incomplete, remember VAR so that
   we can lay it out later, when and if its type becomes complete.  */
VAR is a VAR_DECL.  If its type is incomplete, remember VAR so that
we can lay it out later, when and if its type becomes complete.
VAR is a VAR_DECL . If its type is incomplete remember VAR so that we can lay it out later when and if its type becomes complete .
void
maybe_register_incomplete_var (tree var)
{
  gcc_assert (TREE_CODE (var) == VAR_DECL);
  if (!processing_template_decl && TREE_TYPE (var) != error_mark_node
      && DECL_EXTERNAL (var))
    {
      tree inner_type = TREE_TYPE (var);
      while (TREE_CODE (inner_type) == ARRAY_TYPE)
	inner_type = TREE_TYPE (inner_type);
      inner_type = TYPE_MAIN_VARIANT (inner_type);
      if ((!COMPLETE_TYPE_P (inner_type) && CLASS_TYPE_P (inner_type))
	  || (TYPE_LANG_SPECIFIC (inner_type)
	      && TYPE_BEING_DEFINED (inner_type)))
	incomplete_vars = tree_cons (inner_type, var, incomplete_vars);
    }
}
void maybe_register_incomplete_var ( tree var ) { gcc_assert ( TREE_CODE ( var ) == VAR_DECL ) ; if ( ! processing_template_decl && TREE_TYPE ( var ) != error_mark_node && DECL_EXTERNAL ( var ) ) { tree inner_type = TREE_TYPE ( var ) ; while ( TREE_CODE ( inner_type ) == ARRAY_TYPE ) inner_type = TREE_TYPE ( inner_type ) ; inner_type = TYPE_MAIN_VARIANT ( inner_type ) ; if ( ( ! COMPLETE_TYPE_P ( inner_type ) && CLASS_TYPE_P ( inner_type ) ) || ( TYPE_LANG_SPECIFIC ( inner_type ) && TYPE_BEING_DEFINED ( inner_type ) ) ) incomplete_vars = tree_cons ( inner_type , var , incomplete_vars ) ; } }
VAR is a VAR_DECL.
VAR is a VAR_DECL .
/* Keep track of variables with incomplete types.  */ /* RTTI TD entries are created while defining the type_info.  */