eval.c:1535
NORETURN(static void jump_tag_but_local_jump _((int)));
static void
jump_tag_but_local_jump(state)
    int state;
{
    VALUE val;

    if (prot_tag) val = prot_tag->retval;
    else          val = Qnil;
    switch (state) {
      case 0:
	break;
      case TAG_RETURN:
	localjump_error("unexpected return", val, state);
	break;
      case TAG_BREAK:
	localjump_error("unexpected break", val, state);
	break;
      case TAG_NEXT:
	localjump_error("unexpected next", val, state);
	break;
      case TAG_REDO:
	localjump_error("unexpected redo", Qnil, state);
	break;
      case TAG_RETRY:
	localjump_error("retry outside of rescue clause", Qnil, state);
	break;
      default:
	break;
    }
    JUMP_TAG(state);
}
