* reduce UNREACHABLE.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35333 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
b860144680
commit
57fb219905
30
bignum.c
30
bignum.c
@ -2976,14 +2976,21 @@ big_fdiv(VALUE x, VALUE y)
|
|||||||
switch (TYPE(y)) {
|
switch (TYPE(y)) {
|
||||||
case T_FIXNUM:
|
case T_FIXNUM:
|
||||||
y = rb_int2big(FIX2LONG(y));
|
y = rb_int2big(FIX2LONG(y));
|
||||||
case T_BIGNUM: {
|
case T_BIGNUM:
|
||||||
bigtrunc(y);
|
bigtrunc(y);
|
||||||
l = RBIGNUM_LEN(y) - 1;
|
l = RBIGNUM_LEN(y) - 1;
|
||||||
ey = l * BITSPERDIG;
|
ey = l * BITSPERDIG;
|
||||||
ey += bdigbitsize(BDIGITS(y)[l]);
|
ey += bdigbitsize(BDIGITS(y)[l]);
|
||||||
ey -= DBL_BIGDIG * BITSPERDIG;
|
ey -= DBL_BIGDIG * BITSPERDIG;
|
||||||
if (ey) y = big_shift(y, ey);
|
if (ey) y = big_shift(y, ey);
|
||||||
bignum:
|
break;
|
||||||
|
case T_FLOAT:
|
||||||
|
y = dbl2big(ldexp(frexp(RFLOAT_VALUE(y), &i), DBL_MANT_DIG));
|
||||||
|
ey = i - DBL_MANT_DIG;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
rb_bug("big_fdiv");
|
||||||
|
}
|
||||||
bigdivrem(x, y, &z, 0);
|
bigdivrem(x, y, &z, 0);
|
||||||
l = ex - ey;
|
l = ex - ey;
|
||||||
#if SIZEOF_LONG > SIZEOF_INT
|
#if SIZEOF_LONG > SIZEOF_INT
|
||||||
@ -2995,15 +3002,6 @@ big_fdiv(VALUE x, VALUE y)
|
|||||||
#endif
|
#endif
|
||||||
return DBL2NUM(ldexp(big2dbl(z), (int)l));
|
return DBL2NUM(ldexp(big2dbl(z), (int)l));
|
||||||
}
|
}
|
||||||
case T_FLOAT:
|
|
||||||
y = dbl2big(ldexp(frexp(RFLOAT_VALUE(y), &i), DBL_MANT_DIG));
|
|
||||||
ey = i - DBL_MANT_DIG;
|
|
||||||
goto bignum;
|
|
||||||
}
|
|
||||||
rb_bug("big_fdiv");
|
|
||||||
|
|
||||||
UNREACHABLE;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* call-seq:
|
* call-seq:
|
||||||
@ -3665,17 +3663,13 @@ static VALUE
|
|||||||
rb_big_coerce(VALUE x, VALUE y)
|
rb_big_coerce(VALUE x, VALUE y)
|
||||||
{
|
{
|
||||||
if (FIXNUM_P(y)) {
|
if (FIXNUM_P(y)) {
|
||||||
return rb_assoc_new(rb_int2big(FIX2LONG(y)), x);
|
y = rb_int2big(FIX2LONG(y));
|
||||||
}
|
}
|
||||||
else if (RB_TYPE_P(y, T_BIGNUM)) {
|
else if (!RB_TYPE_P(y, T_BIGNUM)) {
|
||||||
return rb_assoc_new(y, x);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
rb_raise(rb_eTypeError, "can't coerce %s to Bignum",
|
rb_raise(rb_eTypeError, "can't coerce %s to Bignum",
|
||||||
rb_obj_classname(y));
|
rb_obj_classname(y));
|
||||||
}
|
}
|
||||||
|
return rb_assoc_new(y, x);
|
||||||
UNREACHABLE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
9
class.c
9
class.c
@ -1649,15 +1649,12 @@ rb_scan_args(int argc, const VALUE *argv, const char *fmt, ...)
|
|||||||
}
|
}
|
||||||
va_end(vargs);
|
va_end(vargs);
|
||||||
|
|
||||||
if (argi < argc)
|
if (argi < argc) {
|
||||||
goto argc_error;
|
|
||||||
|
|
||||||
return argc;
|
|
||||||
|
|
||||||
argc_error:
|
argc_error:
|
||||||
rb_error_arity(argc, n_mand, f_var ? UNLIMITED_ARGUMENTS : n_mand + n_opt);
|
rb_error_arity(argc, n_mand, f_var ? UNLIMITED_ARGUMENTS : n_mand + n_opt);
|
||||||
|
}
|
||||||
|
|
||||||
UNREACHABLE;
|
return argc;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
8
dir.c
8
dir.c
@ -584,14 +584,10 @@ dir_read(VALUE dir)
|
|||||||
if (READDIR(dirp->dir, dirp->enc, &STRUCT_DIRENT(entry), dp)) {
|
if (READDIR(dirp->dir, dirp->enc, &STRUCT_DIRENT(entry), dp)) {
|
||||||
return rb_external_str_new_with_enc(dp->d_name, NAMLEN(dp), dirp->enc);
|
return rb_external_str_new_with_enc(dp->d_name, NAMLEN(dp), dirp->enc);
|
||||||
}
|
}
|
||||||
else if (errno == 0) { /* end of stream */
|
|
||||||
return Qnil;
|
|
||||||
}
|
|
||||||
else {
|
else {
|
||||||
rb_sys_fail(0);
|
if (errno != 0) rb_sys_fail(0);
|
||||||
|
return Qnil; /* end of stream */
|
||||||
}
|
}
|
||||||
|
|
||||||
UNREACHABLE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -922,15 +922,12 @@ rb_enc_codepoint_len(const char *p, const char *e, int *len_p, rb_encoding *enc)
|
|||||||
if (e <= p)
|
if (e <= p)
|
||||||
rb_raise(rb_eArgError, "empty string");
|
rb_raise(rb_eArgError, "empty string");
|
||||||
r = rb_enc_precise_mbclen(p, e, enc);
|
r = rb_enc_precise_mbclen(p, e, enc);
|
||||||
if (MBCLEN_CHARFOUND_P(r)) {
|
if (!MBCLEN_CHARFOUND_P(r)) {
|
||||||
|
rb_raise(rb_eArgError, "invalid byte sequence in %s", rb_enc_name(enc));
|
||||||
|
}
|
||||||
if (len_p) *len_p = MBCLEN_CHARFOUND_LEN(r);
|
if (len_p) *len_p = MBCLEN_CHARFOUND_LEN(r);
|
||||||
return rb_enc_mbc_to_codepoint(p, e, enc);
|
return rb_enc_mbc_to_codepoint(p, e, enc);
|
||||||
}
|
}
|
||||||
else
|
|
||||||
rb_raise(rb_eArgError, "invalid byte sequence in %s", rb_enc_name(enc));
|
|
||||||
|
|
||||||
UNREACHABLE;
|
|
||||||
}
|
|
||||||
|
|
||||||
#undef rb_enc_codepoint
|
#undef rb_enc_codepoint
|
||||||
unsigned int
|
unsigned int
|
||||||
|
@ -630,6 +630,7 @@ pty_getpty(int argc, VALUE *argv, VALUE self)
|
|||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
NORETURN(static void raise_from_check(pid_t pid, int status));
|
||||||
static void
|
static void
|
||||||
raise_from_check(pid_t pid, int status)
|
raise_from_check(pid_t pid, int status)
|
||||||
{
|
{
|
||||||
|
29
file.c
29
file.c
@ -4182,13 +4182,8 @@ test_check(int n, int argc, VALUE *argv)
|
|||||||
n+=1;
|
n+=1;
|
||||||
rb_check_arity(argc, n, n);
|
rb_check_arity(argc, n, n);
|
||||||
for (i=1; i<n; i++) {
|
for (i=1; i<n; i++) {
|
||||||
switch (TYPE(argv[i])) {
|
if (!RB_TYPE_P(argv[i], T_FILE)) {
|
||||||
case T_STRING:
|
|
||||||
default:
|
|
||||||
FilePathValue(argv[i]);
|
FilePathValue(argv[i]);
|
||||||
break;
|
|
||||||
case T_FILE:
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -4260,7 +4255,16 @@ rb_f_test(int argc, VALUE *argv)
|
|||||||
|
|
||||||
if (argc == 0) rb_check_arity(argc, 2, 3);
|
if (argc == 0) rb_check_arity(argc, 2, 3);
|
||||||
cmd = NUM2CHR(argv[0]);
|
cmd = NUM2CHR(argv[0]);
|
||||||
if (cmd == 0) goto unknown;
|
if (cmd == 0) {
|
||||||
|
unknown:
|
||||||
|
/* unknown command */
|
||||||
|
if (ISPRINT(cmd)) {
|
||||||
|
rb_raise(rb_eArgError, "unknown command '%s%c'", cmd == '\'' || cmd == '\\' ? "\\" : "", cmd);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
rb_raise(rb_eArgError, "unknown command \"\\x%02X\"", cmd);
|
||||||
|
}
|
||||||
|
}
|
||||||
if (strchr("bcdefgGkloOprRsSuwWxXz", cmd)) {
|
if (strchr("bcdefgGkloOprRsSuwWxXz", cmd)) {
|
||||||
CHECK(1);
|
CHECK(1);
|
||||||
switch (cmd) {
|
switch (cmd) {
|
||||||
@ -4379,16 +4383,7 @@ rb_f_test(int argc, VALUE *argv)
|
|||||||
return Qfalse;
|
return Qfalse;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
unknown:
|
goto unknown;
|
||||||
/* unknown command */
|
|
||||||
if (ISPRINT(cmd)) {
|
|
||||||
rb_raise(rb_eArgError, "unknown command '%s%c'", cmd == '\'' || cmd == '\\' ? "\\" : "", cmd);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
rb_raise(rb_eArgError, "unknown command \"\\x%02X\"", cmd);
|
|
||||||
}
|
|
||||||
|
|
||||||
UNREACHABLE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
16
io.c
16
io.c
@ -2336,10 +2336,7 @@ io_readpartial(int argc, VALUE *argv, VALUE io)
|
|||||||
ret = io_getpartial(argc, argv, io, 0);
|
ret = io_getpartial(argc, argv, io, 0);
|
||||||
if (NIL_P(ret))
|
if (NIL_P(ret))
|
||||||
rb_eof_error();
|
rb_eof_error();
|
||||||
else
|
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
UNREACHABLE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -2399,10 +2396,7 @@ io_read_nonblock(int argc, VALUE *argv, VALUE io)
|
|||||||
ret = io_getpartial(argc, argv, io, 1);
|
ret = io_getpartial(argc, argv, io, 1);
|
||||||
if (NIL_P(ret))
|
if (NIL_P(ret))
|
||||||
rb_eof_error();
|
rb_eof_error();
|
||||||
else
|
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
UNREACHABLE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -4437,6 +4431,8 @@ rb_io_fmode_modestr(int fmode)
|
|||||||
return MODE_BTMODE("a", "ab", "at");
|
return MODE_BTMODE("a", "ab", "at");
|
||||||
}
|
}
|
||||||
switch (fmode & FMODE_READWRITE) {
|
switch (fmode & FMODE_READWRITE) {
|
||||||
|
default:
|
||||||
|
rb_raise(rb_eArgError, "invalid access fmode 0x%x", fmode);
|
||||||
case FMODE_READABLE:
|
case FMODE_READABLE:
|
||||||
return MODE_BTMODE("r", "rb", "rt");
|
return MODE_BTMODE("r", "rb", "rt");
|
||||||
case FMODE_WRITABLE:
|
case FMODE_WRITABLE:
|
||||||
@ -4447,9 +4443,6 @@ rb_io_fmode_modestr(int fmode)
|
|||||||
}
|
}
|
||||||
return MODE_BTMODE("r+", "rb+", "rt+");
|
return MODE_BTMODE("r+", "rb+", "rt+");
|
||||||
}
|
}
|
||||||
rb_raise(rb_eArgError, "invalid access fmode 0x%x", fmode);
|
|
||||||
|
|
||||||
UNREACHABLE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
@ -4607,6 +4600,8 @@ rb_io_oflags_modestr(int oflags)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
switch (oflags & (O_RDONLY|O_WRONLY|O_RDWR)) {
|
switch (oflags & (O_RDONLY|O_WRONLY|O_RDWR)) {
|
||||||
|
default:
|
||||||
|
rb_raise(rb_eArgError, "invalid access oflags 0x%x", oflags);
|
||||||
case O_RDONLY:
|
case O_RDONLY:
|
||||||
return MODE_BINARY("r", "rb");
|
return MODE_BINARY("r", "rb");
|
||||||
case O_WRONLY:
|
case O_WRONLY:
|
||||||
@ -4614,9 +4609,6 @@ rb_io_oflags_modestr(int oflags)
|
|||||||
case O_RDWR:
|
case O_RDWR:
|
||||||
return MODE_BINARY("r+", "rb+");
|
return MODE_BINARY("r+", "rb+");
|
||||||
}
|
}
|
||||||
rb_raise(rb_eArgError, "invalid access oflags 0x%x", oflags);
|
|
||||||
|
|
||||||
UNREACHABLE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
15
marshal.c
15
marshal.c
@ -1143,12 +1143,10 @@ r_symlink(struct load_arg *arg)
|
|||||||
st_data_t id;
|
st_data_t id;
|
||||||
long num = r_long(arg);
|
long num = r_long(arg);
|
||||||
|
|
||||||
if (st_lookup(arg->symbols, num, &id)) {
|
if (!st_lookup(arg->symbols, num, &id)) {
|
||||||
return (ID)id;
|
|
||||||
}
|
|
||||||
rb_raise(rb_eArgError, "bad symbol");
|
rb_raise(rb_eArgError, "bad symbol");
|
||||||
|
}
|
||||||
UNREACHABLE;
|
return (ID)id;
|
||||||
}
|
}
|
||||||
|
|
||||||
static ID
|
static ID
|
||||||
@ -1181,6 +1179,8 @@ r_symbol(struct load_arg *arg)
|
|||||||
|
|
||||||
again:
|
again:
|
||||||
switch ((type = r_byte(arg))) {
|
switch ((type = r_byte(arg))) {
|
||||||
|
default:
|
||||||
|
rb_raise(rb_eArgError, "dump format error for symbol(0x%x)", type);
|
||||||
case TYPE_IVAR:
|
case TYPE_IVAR:
|
||||||
ivar = 1;
|
ivar = 1;
|
||||||
goto again;
|
goto again;
|
||||||
@ -1191,12 +1191,7 @@ r_symbol(struct load_arg *arg)
|
|||||||
rb_raise(rb_eArgError, "dump format error (symlink with encoding)");
|
rb_raise(rb_eArgError, "dump format error (symlink with encoding)");
|
||||||
}
|
}
|
||||||
return r_symlink(arg);
|
return r_symlink(arg);
|
||||||
default:
|
|
||||||
rb_raise(rb_eArgError, "dump format error for symbol(0x%x)", type);
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
UNREACHABLE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static VALUE
|
static VALUE
|
||||||
|
12
numeric.c
12
numeric.c
@ -2109,11 +2109,11 @@ rb_num2ll(VALUE val)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
val = rb_to_int(val);
|
break;
|
||||||
return NUM2LL(val);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
UNREACHABLE;
|
val = rb_to_int(val);
|
||||||
|
return NUM2LL(val);
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned LONG_LONG
|
unsigned LONG_LONG
|
||||||
@ -2153,11 +2153,11 @@ rb_num2ull(VALUE val)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
val = rb_to_int(val);
|
break;
|
||||||
return NUM2ULL(val);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
UNREACHABLE;
|
val = rb_to_int(val);
|
||||||
|
return NUM2ULL(val);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* HAVE_LONG_LONG */
|
#endif /* HAVE_LONG_LONG */
|
||||||
|
4
ruby.c
4
ruby.c
@ -1756,9 +1756,9 @@ opt_W_getter(ID id, void *data)
|
|||||||
return INT2FIX(1);
|
return INT2FIX(1);
|
||||||
case Qtrue:
|
case Qtrue:
|
||||||
return INT2FIX(2);
|
return INT2FIX(2);
|
||||||
|
default:
|
||||||
|
return Qnil;
|
||||||
}
|
}
|
||||||
|
|
||||||
UNREACHABLE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -1071,17 +1071,13 @@ child_result(struct ChildRecord *child, int mode)
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (mode) {
|
if (mode == P_OVERLAY) {
|
||||||
case P_NOWAIT:
|
|
||||||
return child->pid;
|
|
||||||
case P_OVERLAY:
|
|
||||||
WaitForSingleObject(child->hProcess, INFINITE);
|
WaitForSingleObject(child->hProcess, INFINITE);
|
||||||
GetExitCodeProcess(child->hProcess, &exitcode);
|
GetExitCodeProcess(child->hProcess, &exitcode);
|
||||||
CloseChildHandle(child);
|
CloseChildHandle(child);
|
||||||
_exit(exitcode);
|
_exit(exitcode);
|
||||||
default:
|
|
||||||
UNREACHABLE;
|
|
||||||
}
|
}
|
||||||
|
return child->pid;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* License: Ruby's */
|
/* License: Ruby's */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user