diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2017-09-29 00:18:39 +0900 |
|---|---|---|
| committer | GitHub <[email protected]> | 2017-09-29 00:18:39 +0900 |
| commit | 29a9e698e33f89c18cd8f9622bd503aa55df2f51 (patch) | |
| tree | e83110a7db0edaa3a6c191abe850ed7b657f766e /src | |
| parent | 381850280c036116adaffe42cc420da9c71d28a2 (diff) | |
| parent | 999ce87129fb9216ae746140aa716a764a79b354 (diff) | |
| download | mruby-29a9e698e33f89c18cd8f9622bd503aa55df2f51.tar.gz mruby-29a9e698e33f89c18cd8f9622bd503aa55df2f51.zip | |
Merge pull request #3815 from dabroz/fix-warnings
Fix MSVC 14.0 warnings
Diffstat (limited to 'src')
| -rw-r--r-- | src/backtrace.c | 3 | ||||
| -rw-r--r-- | src/class.c | 6 | ||||
| -rw-r--r-- | src/dump.c | 4 | ||||
| -rw-r--r-- | src/error.c | 4 | ||||
| -rw-r--r-- | src/gc.c | 6 | ||||
| -rw-r--r-- | src/hash.c | 4 | ||||
| -rw-r--r-- | src/kernel.c | 2 | ||||
| -rw-r--r-- | src/numeric.c | 6 | ||||
| -rw-r--r-- | src/object.c | 2 | ||||
| -rw-r--r-- | src/pool.c | 11 | ||||
| -rw-r--r-- | src/proc.c | 2 | ||||
| -rw-r--r-- | src/range.c | 2 | ||||
| -rw-r--r-- | src/state.c | 2 | ||||
| -rw-r--r-- | src/string.c | 12 | ||||
| -rw-r--r-- | src/vm.c | 18 |
15 files changed, 48 insertions, 36 deletions
diff --git a/src/backtrace.c b/src/backtrace.c index 3e4e1a438..232d1c2f4 100644 --- a/src/backtrace.c +++ b/src/backtrace.c @@ -75,7 +75,8 @@ each_backtrace(mrb_state *mrb, ptrdiff_t ciidx, mrb_code *pc0, each_backtrace_fu static void print_backtrace(mrb_state *mrb, mrb_value backtrace) { - int i, n; + int i; + mrb_int n; FILE *stream = stderr; if (!mrb_array_p(backtrace)) return; diff --git a/src/class.c b/src/class.c index 44121bce6..f220106cd 100644 --- a/src/class.c +++ b/src/class.c @@ -567,10 +567,10 @@ mrb_get_args(mrb_state *mrb, const char *format, ...) { const char *fmt = format; char c; - int i = 0; + mrb_int i = 0; va_list ap; - int argc = mrb->c->ci->argc; - int arg_i = 0; + mrb_int argc = mrb->c->ci->argc; + mrb_int arg_i = 0; mrb_value *array_argv; mrb_bool opt = FALSE; mrb_bool opt_skip = TRUE; diff --git a/src/dump.c b/src/dump.c index d479a1a4f..71d2f7184 100644 --- a/src/dump.c +++ b/src/dump.c @@ -654,7 +654,7 @@ write_section_debug(mrb_state *mrb, mrb_irep *irep, uint8_t *cur, mrb_sym const for (i = 0; i < filenames_len; ++i) { sym = mrb_sym2name_len(mrb, filenames[i], &sym_len); mrb_assert(sym); - cur += uint16_to_bin(sym_len, cur); + cur += uint16_to_bin((uint16_t)sym_len, cur); memcpy(cur, sym, sym_len); cur += sym_len; section_size += sizeof(uint16_t) + sym_len; @@ -707,7 +707,7 @@ write_lv_sym_table(mrb_state *mrb, uint8_t **start, mrb_sym const *syms, uint32_ for (i = 0; i < syms_len; ++i) { str = mrb_sym2name_len(mrb, syms[i], &str_len); - cur += uint16_to_bin(str_len, cur); + cur += uint16_to_bin((uint16_t)str_len, cur); memcpy(cur, str, str_len); cur += str_len; } diff --git a/src/error.c b/src/error.c index 2c4fd1a40..fd4182eb2 100644 --- a/src/error.c +++ b/src/error.c @@ -71,7 +71,7 @@ exc_exception(mrb_state *mrb, mrb_value self) { mrb_value exc; mrb_value a; - int argc; + mrb_int argc; argc = mrb_get_args(mrb, "|o", &a); if (argc == 0) return self; @@ -386,7 +386,7 @@ mrb_bug(mrb_state *mrb, const char *fmt, ...) } MRB_API mrb_value -mrb_make_exception(mrb_state *mrb, int argc, const mrb_value *argv) +mrb_make_exception(mrb_state *mrb, mrb_int argc, const mrb_value *argv) { mrb_value mesg; int n; @@ -551,7 +551,7 @@ mark_context_stack(mrb_state *mrb, struct mrb_context *c) size_t i; size_t e; mrb_value nil; - int nregs; + mrb_int nregs; if (c->stack == NULL) return; e = c->stack - c->stbase; @@ -1389,7 +1389,7 @@ gc_interval_ratio_set(mrb_state *mrb, mrb_value obj) mrb_int ratio; mrb_get_args(mrb, "i", &ratio); - mrb->gc.interval_ratio = ratio; + mrb->gc.interval_ratio = (int)ratio; return mrb_nil_value(); } @@ -1422,7 +1422,7 @@ gc_step_ratio_set(mrb_state *mrb, mrb_value obj) mrb_int ratio; mrb_get_args(mrb, "i", &ratio); - mrb->gc.step_ratio = ratio; + mrb->gc.step_ratio = (int)ratio; return mrb_nil_value(); } diff --git a/src/hash.c b/src/hash.c index 93d550187..53ef2b818 100644 --- a/src/hash.c +++ b/src/hash.c @@ -37,7 +37,7 @@ mrb_hash_ht_hash_func(mrb_state *mrb, mrb_value key) default: hv = mrb_funcall(mrb, key, "hash", 0); - h = (khint_t)t ^ mrb_fixnum(hv); + h = (khint_t)t ^ (khint_t)mrb_fixnum(hv); break; } return kh_int_hash_func(mrb, h); @@ -136,7 +136,7 @@ mrb_hash_new_capa(mrb_state *mrb, mrb_int capa) h = (struct RHash*)mrb_obj_alloc(mrb, MRB_TT_HASH, mrb->hash_class); /* khash needs 1/4 empty space so it is not resized immediately */ - h->ht = kh_init_size(ht, mrb, capa*4/3); + h->ht = kh_init_size(ht, mrb, (khint_t)(capa*4/3)); h->iv = 0; return mrb_obj_value(h); } diff --git a/src/kernel.c b/src/kernel.c index 4e95ab24b..33d142184 100644 --- a/src/kernel.c +++ b/src/kernel.c @@ -855,7 +855,7 @@ MRB_API mrb_value mrb_f_raise(mrb_state *mrb, mrb_value self) { mrb_value a[2], exc; - int argc; + mrb_int argc; argc = mrb_get_args(mrb, "|oo", &a[0], &a[1]); diff --git a/src/numeric.c b/src/numeric.c index afb8415a0..8c7d448bd 100644 --- a/src/numeric.c +++ b/src/numeric.c @@ -877,7 +877,7 @@ static mrb_value flo_or(mrb_state *mrb, mrb_value x); static mrb_value flo_xor(mrb_state *mrb, mrb_value x); #define bit_op(x,y,op1,op2) do {\ if (mrb_fixnum_p(y)) return mrb_fixnum_value(mrb_fixnum(x) op2 mrb_fixnum(y));\ - return flo_ ## op1(mrb, mrb_float_value(mrb, mrb_fixnum(x)));\ + return flo_ ## op1(mrb, mrb_float_value(mrb, (mrb_float)mrb_fixnum(x)));\ } while(0) /* 15.2.8.3.9 */ @@ -951,7 +951,7 @@ lshift(mrb_state *mrb, mrb_int val, mrb_int width) (val < (MRB_INT_MIN >> width))) { goto bit_overflow; } - return mrb_fixnum_value(val * (1u << width)); + return mrb_fixnum_value(val * ((mrb_int)1 << width)); } bit_overflow: @@ -1162,7 +1162,7 @@ fix_minus(mrb_state *mrb, mrb_value self) MRB_API mrb_value -mrb_fixnum_to_str(mrb_state *mrb, mrb_value x, int base) +mrb_fixnum_to_str(mrb_state *mrb, mrb_value x, mrb_int base) { char buf[MRB_INT_BIT+1]; char *b = buf + sizeof buf; diff --git a/src/object.c b/src/object.c index 368e90b9f..388a34b44 100644 --- a/src/object.c +++ b/src/object.c @@ -523,7 +523,7 @@ mrb_to_int(mrb_state *mrb, mrb_value val) } MRB_API mrb_value -mrb_convert_to_integer(mrb_state *mrb, mrb_value val, int base) +mrb_convert_to_integer(mrb_state *mrb, mrb_value val, mrb_int base) { mrb_value tmp; diff --git a/src/pool.c b/src/pool.c index db4546abf..b87d2cfaa 100644 --- a/src/pool.c +++ b/src/pool.c @@ -25,6 +25,13 @@ #endif /* end of configuration section */ +/* Disable MSVC warning "C4200: nonstandard extension used: zero-sized array + * in struct/union" when in C++ mode */ +#ifdef _MSC_VER +#pragma warning(push) +#pragma warning(disable : 4200) +#endif + struct mrb_pool_page { struct mrb_pool_page *next; size_t offset; @@ -33,6 +40,10 @@ struct mrb_pool_page { char page[]; }; +#ifdef _MSC_VER +#pragma warning(pop) +#endif + struct mrb_pool { mrb_state *mrb; struct mrb_pool_page *pages; diff --git a/src/proc.c b/src/proc.c index 10a2c4f33..a6214f1fc 100644 --- a/src/proc.c +++ b/src/proc.c @@ -35,7 +35,7 @@ mrb_proc_new(mrb_state *mrb, mrb_irep *irep) } static struct REnv* -env_new(mrb_state *mrb, int nlocals) +env_new(mrb_state *mrb, mrb_int nlocals) { struct REnv *e; diff --git a/src/range.c b/src/range.c index eb9a9c61f..c6a5ea924 100644 --- a/src/range.c +++ b/src/range.c @@ -131,7 +131,7 @@ mrb_range_initialize(mrb_state *mrb, mrb_value range) { mrb_value beg, end; mrb_bool exclusive; - int n; + mrb_int n; n = mrb_get_args(mrb, "oo|b", &beg, &end, &exclusive); if (n != 3) { diff --git a/src/state.c b/src/state.c index 039d67d57..678f58e9c 100644 --- a/src/state.c +++ b/src/state.c @@ -63,7 +63,7 @@ mrb_default_allocf(mrb_state *mrb, void *p, size_t size, void *ud) struct alloca_header { struct alloca_header *next; - char buf[]; + char buf[1]; }; MRB_API void* diff --git a/src/string.c b/src/string.c index 01d706fa3..1b57efc71 100644 --- a/src/string.c +++ b/src/string.c @@ -488,7 +488,7 @@ check_frozen(mrb_state *mrb, struct RString *s) static mrb_value str_replace(mrb_state *mrb, struct RString *s1, struct RString *s2) { - long len; + mrb_int len; check_frozen(mrb, s1); if (s1 == s2) return mrb_obj_value(s1); @@ -1125,7 +1125,7 @@ static mrb_value mrb_str_aref_m(mrb_state *mrb, mrb_value str) { mrb_value a1, a2; - int argc; + mrb_int argc; argc = mrb_get_args(mrb, "o|o", &a1, &a2); if (argc == 2) { @@ -1467,7 +1467,7 @@ mrb_str_substr(mrb_state *mrb, mrb_value str, mrb_int beg, mrb_int len) return str_substr(mrb, str, beg, len); } -mrb_int +uint32_t mrb_str_hash(mrb_state *mrb, mrb_value str) { /* 1-8-7 */ @@ -1480,7 +1480,7 @@ mrb_str_hash(mrb_state *mrb, mrb_value str) key = key*65599 + *p; p++; } - return (mrb_int)(key + (key>>5)); + return (uint32_t)(key + (key>>5)); } /* 15.2.10.5.20 */ @@ -1911,7 +1911,7 @@ mrb_str_rindex(mrb_state *mrb, mrb_value str) static mrb_value mrb_str_split_m(mrb_state *mrb, mrb_value str) { - int argc; + mrb_int argc; mrb_value spat = mrb_nil_value(); enum {awk, string, regexp} split_type = string; mrb_int i = 0; @@ -2025,7 +2025,7 @@ mrb_str_split_m(mrb_state *mrb, mrb_value str) } MRB_API mrb_value -mrb_str_len_to_inum(mrb_state *mrb, const char *str, size_t len, int base, int badcheck) +mrb_str_len_to_inum(mrb_state *mrb, const char *str, mrb_int len, mrb_int base, int badcheck) { const char *p = str; const char *pend = str + len; @@ -435,14 +435,14 @@ mrb_funcall_with_block(mrb_state *mrb, mrb_value self, mrb_sym mid, mrb_int argc ci->mid = mid; ci->proc = p; ci->stackent = mrb->c->stack; - ci->argc = argc; + ci->argc = (int)argc; ci->target_class = c; mrb->c->stack = mrb->c->stack + n; if (mrb->c->stbase <= argv && argv < mrb->c->stend) { voff = argv - mrb->c->stbase; } if (MRB_PROC_CFUNC_P(p)) { - ci->nregs = argc + 2; + ci->nregs = (int)(argc + 2); stack_extend(mrb, ci->nregs); } else if (argc >= CALL_MAXARGS) { @@ -454,7 +454,7 @@ mrb_funcall_with_block(mrb_state *mrb, mrb_value self, mrb_sym mid, mrb_int argc } else { if (argc < 0) argc = 1; - ci->nregs = p->body.irep->nregs + argc; + ci->nregs = (int)(p->body.irep->nregs + argc); stack_extend(mrb, ci->nregs); } if (voff >= 0) { @@ -701,11 +701,11 @@ mrb_yield_with_class(mrb_state *mrb, mrb_value b, mrb_int argc, const mrb_value ci->mid = mid; ci->proc = p; ci->stackent = mrb->c->stack; - ci->argc = argc; + ci->argc = (int)argc; ci->target_class = c; ci->acc = CI_ACC_SKIP; mrb->c->stack = mrb->c->stack + n; - ci->nregs = MRB_PROC_CFUNC_P(p) ? argc+2 : p->body.irep->nregs; + ci->nregs = MRB_PROC_CFUNC_P(p) ? (int)(argc+2) : p->body.irep->nregs; stack_extend(mrb, ci->nregs); mrb->c->stack[0] = self; @@ -1699,7 +1699,7 @@ RETRY_TRY_BLOCK: struct RArray *ary = mrb_ary_ptr(stack[m1]); pp = ARY_PTR(ary); - len = ARY_LEN(ary); + len = (int)ARY_LEN(ary); } regs[a] = mrb_ary_new_capa(mrb, m1+len+m2); rest = mrb_ary_ptr(regs[a]); @@ -1741,7 +1741,7 @@ RETRY_TRY_BLOCK: if (argc < 0) { struct RArray *ary = mrb_ary_ptr(regs[1]); argv = ARY_PTR(ary); - argc = ARY_LEN(ary); + argc = (int)ARY_LEN(ary); mrb_gc_protect(mrb, regs[1]); } if (mrb->c->ci->proc && MRB_PROC_STRICT_P(mrb->c->ci->proc)) { @@ -1754,7 +1754,7 @@ RETRY_TRY_BLOCK: } else if (len > 1 && argc == 1 && mrb_array_p(argv[0])) { mrb_gc_protect(mrb, argv[0]); - argc = RARRAY_LEN(argv[0]); + argc = (int)RARRAY_LEN(argv[0]); argv = RARRAY_PTR(argv[0]); } if (argc < len) { @@ -2628,7 +2628,7 @@ RETRY_TRY_BLOCK: v = mrb_ary_new_from_values(mrb, 1, ®s[a]); } ary = mrb_ary_ptr(v); - len = ARY_LEN(ary); + len = (int)ARY_LEN(ary); if (len > pre + post) { v = mrb_ary_new_from_values(mrb, len - pre - post, ARY_PTR(ary)+pre); regs[a++] = v; |
