init_array_element (array, element, exp, pos, noside, low_bound, high_bound) value_ptr array, element; register struct expression *exp; register int *pos; enum noside noside; LONGEST low_bound, high_bound;
init_array_element (struct value *array, struct value *element, struct expression *exp, int *pos, enum noside noside, LONGEST low_bound, LONGEST high_bound)
init_array_element (array, element, exp, pos, noside, low_bound, high_bound)     value_ptr array, element;     register struct expression *exp;     register int *pos;     enum noside noside;     LONGEST low_bound, high_bound;{  LONGEST index;  int element_size = TYPE_LENGTH (VALUE_TYPE (element));  if (exp->elts[*pos].opcode == BINOP_COMMA)    {      (*pos)++;      init_array_element (array, element, exp, pos, noside,			  low_bound, high_bound);      return init_array_element (array, element,				 exp, pos, noside, low_bound, high_bound);    }  else if (exp->elts[*pos].opcode == BINOP_RANGE)    {      LONGEST low, high;      (*pos)++;      low = value_as_long (evaluate_subexp (NULL_TYPE, exp, pos, noside));      high = value_as_long (evaluate_subexp (NULL_TYPE, exp, pos, noside));      if (low < low_bound || high > high_bound)	error ("tuple range index out of range");      for (index = low ; index <= high; index++)	{	  memcpy (VALUE_CONTENTS_RAW (array)		  + (index - low_bound) * element_size,		  VALUE_CONTENTS (element), element_size);	}    }  else    {      index = value_as_long (evaluate_subexp (NULL_TYPE, exp, pos, noside));      if (index < low_bound || index > high_bound)	error ("tuple index out of range");      memcpy (VALUE_CONTENTS_RAW (array) + (index - low_bound) * element_size,	      VALUE_CONTENTS (element), element_size);    }  return index;}