ieee_error (info, expr_start, "expression stack mismatch");
ieee_error (info, expr_start, _("expression stack mismatch"));
ieee_read_expression (info, pp, pv)     struct ieee_info *info;     const bfd_byte **pp;     bfd_vma *pv;{  const bfd_byte *expr_start;#define EXPR_STACK_SIZE (10)  bfd_vma expr_stack[EXPR_STACK_SIZE];  bfd_vma *esp;  expr_start = *pp;  esp = expr_stack;  while (1)    {      const bfd_byte *start;      bfd_vma val;      boolean present;      ieee_record_enum_type c;      start = *pp;      if (! ieee_read_optional_number (info, pp, &val, &present))	return false;      if (present)	{	  if (esp - expr_stack >= EXPR_STACK_SIZE)	    {	      ieee_error (info, start, "expression stack overflow");	      return false;	    }	  *esp++ = val;	  continue;	}      c = (ieee_record_enum_type) **pp;      if (c >= ieee_module_beginning_enum)	break;      ++*pp;      if (c == ieee_comma)	break;      switch (c)	{	default:	  ieee_error (info, start, "unsupported IEEE expression operator");	  break;	case ieee_variable_R_enum:	  {	    bfd_vma indx;	    asection *s;	    if (! ieee_read_number (info, pp, &indx))	      return false;	    for (s = info->abfd->sections; s != NULL; s = s->next)	      if ((bfd_vma) s->target_index == indx)		break;	    if (s == NULL)	      {		ieee_error (info, start, "unknown section");		return false;	      }	    	    if (esp - expr_stack >= EXPR_STACK_SIZE)	      {		ieee_error (info, start, "expression stack overflow");		return false;	      }	    *esp++ = bfd_get_section_vma (info->abfd, s);	  }	  break;	case ieee_function_plus_enum:	case ieee_function_minus_enum:	  {	    bfd_vma v1, v2;	    if (esp - expr_stack < 2)	      {		ieee_error (info, start, "expression stack underflow");		return false;	      }	    v1 = *--esp;	    v2 = *--esp;	    *esp++ = v1 + v2;	  }	  break;	}    }  if (esp - 1 != expr_stack)    {      ieee_error (info, expr_start, "expression stack mismatch");      return false;    }  *pv = *--esp;  return true;}