die->type = type;
set_die_type (die, type, cu);
read_tag_pointer_type (struct die_info *die, struct dwarf2_cu *cu){  struct comp_unit_head *cu_header = &cu->header;  struct type *type;  struct attribute *attr_byte_size;  struct attribute *attr_address_class;  int byte_size, addr_class;  if (die->type)    {      return;    }  type = lookup_pointer_type (die_type (die, cu));  attr_byte_size = dwarf2_attr (die, DW_AT_byte_size, cu);  if (attr_byte_size)    byte_size = DW_UNSND (attr_byte_size);  else    byte_size = cu_header->addr_size;  attr_address_class = dwarf2_attr (die, DW_AT_address_class, cu);  if (attr_address_class)    addr_class = DW_UNSND (attr_address_class);  else    addr_class = DW_ADDR_none;  /* If the pointer size or address class is different than the     default, create a type variant marked as such and set the     length accordingly.  */  if (TYPE_LENGTH (type) != byte_size || addr_class != DW_ADDR_none)    {      if (ADDRESS_CLASS_TYPE_FLAGS_P ())	{	  int type_flags;	  type_flags = ADDRESS_CLASS_TYPE_FLAGS (byte_size, addr_class);	  gdb_assert ((type_flags & ~TYPE_FLAG_ADDRESS_CLASS_ALL) == 0);	  type = make_type_with_address_space (type, type_flags);	}      else if (TYPE_LENGTH (type) != byte_size)	{	  complaint (&symfile_complaints, "invalid pointer size %d", byte_size);	}      else {	/* Should we also complain about unhandled address classes?  */      }    }  TYPE_LENGTH (type) = byte_size;  die->type = type;}