rem: int char_to_repeat;
add: unsigned char char_to_repeat;
context: string2_extend (const struct Spec_list *s1, struct Spec_list *s2){  struct List_element *p;  int char_to_repeat;  int i;  assert (translating);  assert (s1->length > s2->length);  assert (s2->length > 0);  p = s2->tail;  switch (p->type)    {    case RE_NORMAL_CHAR:      char_to_repeat = p->u.normal_char;      break;    case RE_RANGE:      char_to_repeat = p->u.range.last_char;      break;    case RE_CHAR_CLASS:      for (i = N_CHARS; i >= 0; i--)	if (is_char_class_member (p->u.char_class, i))	  break;      assert (i >= 0);      char_to_repeat = CHR (i);      break;    case RE_REPEATED_CHAR:      char_to_repeat = p->u.repeated_char.the_repeated_char;      break;    case RE_EQUIV_CLASS:      /* This shouldn't happen, because validate exits with an error         if it finds an equiv class in string2 when translating.  */      abort ();      break;    case RE_NO_TYPE:      abort ();      break;    default:      abort ();      break;    }  append_repeated_char (s2, char_to_repeat, s1->length - s2->length);  s2->length = s1->length;}