if (IS_AGGR_TYPE_CODE (code) || code == TEMPLATE_TYPE_PARM) TYPE_BINFO (t) = make_binfo (integer_zero_node, t, NULL_TREE, NULL_TREE);
make_lang_type (code)     enum tree_code code;{  extern struct obstack *current_obstack, *saveable_obstack;  register tree t = make_node (code);  /* Set up some flags that give proper default behavior.  */  if (IS_AGGR_TYPE_CODE (code))    {      struct obstack *obstack = current_obstack;      struct lang_type *pi;      SET_IS_AGGR_TYPE (t, 1);      if (! TREE_PERMANENT (t))	obstack = saveable_obstack;      else	my_friendly_assert (obstack == &permanent_obstack, 236);      pi = (struct lang_type *) obstack_alloc (obstack, sizeof (struct lang_type));      bzero ((char *) pi, (int) sizeof (struct lang_type));      TYPE_LANG_SPECIFIC (t) = pi;      SET_CLASSTYPE_INTERFACE_UNKNOWN_X (t, interface_unknown);      CLASSTYPE_INTERFACE_ONLY (t) = interface_only;      TYPE_BINFO (t) = make_binfo (integer_zero_node, t, NULL_TREE, NULL_TREE);      /* Make sure this is laid out, for ease of use later.  In the	 presence of parse errors, the normal was of assuring this	 might not ever get executed, so we lay it out *immediately*.  */      build_pointer_type (t);#ifdef GATHER_STATISTICS      tree_node_counts[(int)lang_type] += 1;      tree_node_sizes[(int)lang_type] += sizeof (struct lang_type);#endif    }  else    /* We use TYPE_ALIAS_SET for the CLASSTYPE_MARKED bits.  But,       TYPE_ALIAS_SET is initialized to -1 by default, so we must       clear it here.  */    TYPE_ALIAS_SET (t) = 0;  return t;}