ieee_error (info, *pp, "stack underflow");
ieee_error (info, *pp, _("stack underflow"));
parse_ieee_be (info, pp)     struct ieee_info *info;     const bfd_byte **pp;{  bfd_vma offset;  if (info->blockstack.bsp <= info->blockstack.stack)    {      ieee_error (info, *pp, "stack underflow");      return false;    }  --info->blockstack.bsp;  switch (info->blockstack.bsp->kind)    {    case 2:      /* When we end the global typedefs block, we copy out the the         contents of info->vars.  This is because the variable indices         may be reused in the local blocks.  However, we need to         preserve them so that we can locate a function returning a         reference variable whose type is named in the global typedef         block.  */      info->global_vars = ((struct ieee_vars *)			   xmalloc (sizeof *info->global_vars));      info->global_vars->alloc = info->vars.alloc;      info->global_vars->vars = ((struct ieee_var *)				 xmalloc (info->vars.alloc					  * sizeof (*info->vars.vars)));      memcpy (info->global_vars->vars, info->vars.vars,	      info->vars.alloc * sizeof (*info->vars.vars));      /* We also copy out the non builtin parts of info->types, since         the types are discarded when we start a new block.  */      info->global_types = ((struct ieee_types *)			    xmalloc (sizeof *info->global_types));      info->global_types->alloc = info->types.alloc;      info->global_types->types = ((struct ieee_type *)				   xmalloc (info->types.alloc					    * sizeof (*info->types.types)));      memcpy (info->global_types->types, info->types.types,	      info->types.alloc * sizeof (*info->types.types));      memset (info->global_types->builtins, 0,	      sizeof (info->global_types->builtins));      break;    case 4:    case 6:      if (! ieee_read_expression (info, pp, &offset))	return false;      if (! info->blockstack.bsp->skip)	{	  if (! debug_end_function (info->dhandle, offset + 1))	    return false;	}      break;    case 0x86:      /* This is BE6 when BB6 started a block rather than a local	 function.  */      if (! ieee_read_expression (info, pp, &offset))	return false;      if (! debug_end_block (info->dhandle, offset + 1))	return false;      break;    case 5:      /* When we end a BB5, we look up the stack for the last BB5, if         there is one, so that we can call debug_start_source.  */      if (info->blockstack.bsp > info->blockstack.stack)	{	  struct ieee_block *bl;	  bl = info->blockstack.bsp;	  do	    {	      --bl;	      if (bl->kind == 5)		{		  if (! debug_start_source (info->dhandle, bl->filename))		    return false;		  break;		}	    }	  while (bl != info->blockstack.stack);	}      break;    case 11:      if (! ieee_read_expression (info, pp, &offset))	return false;      /* We just ignore the module size.  FIXME.  */      break;    default:      /* Other block types do not have any trailing information.  */      break;    }  return true;}