From f1a02dff580c846698c5ae327b9fb2959f34607c Mon Sep 17 00:00:00 2001 From: Tomasz Dąbrowski Date: Mon, 25 Sep 2017 16:41:25 +0200 Subject: fix: include\mruby/gc.h(43): warning C4200: nonstandard extension used: zero-sized array in struct/union --- include/mruby/gc.h | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'include') diff --git a/include/mruby/gc.h b/include/mruby/gc.h index ce214aa56..2a3ff4182 100644 --- a/include/mruby/gc.h +++ b/include/mruby/gc.h @@ -33,6 +33,13 @@ typedef enum { MRB_GC_STATE_SWEEP } mrb_gc_state; +/* 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 + typedef struct mrb_heap_page { struct RBasic *freelist; struct mrb_heap_page *prev; @@ -43,6 +50,10 @@ typedef struct mrb_heap_page { void *objects[]; } mrb_heap_page; +#ifdef _MSC_VER +#pragma warning(pop) +#endif + typedef struct mrb_gc { mrb_heap_page *heaps; /* heaps for GC */ mrb_heap_page *sweeps; -- cgit v1.2.3 From 536b95eb487352d27545d817d5b2d8fbd8a80378 Mon Sep 17 00:00:00 2001 From: Tomasz Dąbrowski Date: Mon, 25 Sep 2017 16:36:07 +0200 Subject: fix: mrbgems\mruby-kernel-ext\src\kernel.c(114): warning C4244: 'function': conversion from 'mrb_int' to 'int', possible loss of data --- include/mruby.h | 2 +- src/object.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/mruby.h b/include/mruby.h index ced9c104d..fa049f293 100644 --- a/include/mruby.h +++ b/include/mruby.h @@ -1054,7 +1054,7 @@ MRB_API mrb_sym mrb_obj_to_sym(mrb_state *mrb, mrb_value name); MRB_API mrb_bool mrb_obj_eq(mrb_state*, mrb_value, mrb_value); MRB_API mrb_bool mrb_obj_equal(mrb_state*, mrb_value, mrb_value); MRB_API mrb_bool mrb_equal(mrb_state *mrb, mrb_value obj1, mrb_value obj2); -MRB_API mrb_value mrb_convert_to_integer(mrb_state *mrb, mrb_value val, int base); +MRB_API mrb_value mrb_convert_to_integer(mrb_state *mrb, mrb_value val, mrb_int base); MRB_API mrb_value mrb_Integer(mrb_state *mrb, mrb_value val); MRB_API mrb_value mrb_Float(mrb_state *mrb, mrb_value val); MRB_API mrb_value mrb_inspect(mrb_state *mrb, mrb_value obj); 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; -- cgit v1.2.3 From 7507d469921c8696e7057d748758cc3c35f83371 Mon Sep 17 00:00:00 2001 From: Tomasz Dąbrowski Date: Mon, 25 Sep 2017 15:57:48 +0200 Subject: fix: src\array.c(86): warning C4244: '=': conversion from 'mrb_int' to 'uint32_t', possible loss of data --- include/mruby/array.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include') diff --git a/include/mruby/array.h b/include/mruby/array.h index 542715554..6fffe4512 100644 --- a/include/mruby/array.h +++ b/include/mruby/array.h @@ -45,7 +45,7 @@ struct RArray { #define ARY_EMBED_P(a) ((a)->flags & MRB_ARY_EMBED_MASK) #define ARY_UNSET_EMBED_FLAG(a) ((a)->flags &= ~(MRB_ARY_EMBED_MASK)) #define ARY_EMBED_LEN(a) ((mrb_int)(((a)->flags & MRB_ARY_EMBED_MASK) - 1)) -#define ARY_SET_EMBED_LEN(a,len) ((a)->flags = ((a)->flags&~MRB_ARY_EMBED_MASK) | (len + 1)) +#define ARY_SET_EMBED_LEN(a,len) ((a)->flags = ((a)->flags&~MRB_ARY_EMBED_MASK) | ((uint32_t)(len) + 1)) #define ARY_EMBED_PTR(a) (&((a)->as.embed[0])) #define ARY_LEN(a) (ARY_EMBED_P(a)?ARY_EMBED_LEN(a):(a)->as.heap.len) -- cgit v1.2.3 From 3e1d60ae0b36b02e20b90d6cba95e8742671dd69 Mon Sep 17 00:00:00 2001 From: Tomasz Dąbrowski Date: Mon, 25 Sep 2017 16:11:33 +0200 Subject: fix: src\hash.c(27): warning C4244: '=': conversion from 'mrb_int' to 'khint_t', possible loss of data --- include/mruby/string.h | 2 +- src/string.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'include') diff --git a/include/mruby/string.h b/include/mruby/string.h index df6fb25c3..4c25b9346 100644 --- a/include/mruby/string.h +++ b/include/mruby/string.h @@ -409,7 +409,7 @@ MRB_API int mrb_str_cmp(mrb_state *mrb, mrb_value str1, mrb_value str2); MRB_API char *mrb_str_to_cstr(mrb_state *mrb, mrb_value str); mrb_value mrb_str_pool(mrb_state *mrb, mrb_value str); -mrb_int mrb_str_hash(mrb_state *mrb, mrb_value str); +uint32_t mrb_str_hash(mrb_state *mrb, mrb_value str); mrb_value mrb_str_dump(mrb_state *mrb, mrb_value str); /* diff --git a/src/string.c b/src/string.c index 01d706fa3..f50468cca 100644 --- a/src/string.c +++ b/src/string.c @@ -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 */ -- cgit v1.2.3 From 971a4f9122d785ae558d590579692a1193819bd6 Mon Sep 17 00:00:00 2001 From: Tomasz Dąbrowski Date: Mon, 25 Sep 2017 16:21:28 +0200 Subject: fix: src\kernel.c(874): warning C4244: 'function': conversion from 'mrb_int' to 'int', possible loss of data --- include/mruby/error.h | 2 +- src/error.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/mruby/error.h b/include/mruby/error.h index 0a262550e..d7abbb14c 100644 --- a/include/mruby/error.h +++ b/include/mruby/error.h @@ -24,7 +24,7 @@ struct RException { MRB_API void mrb_sys_fail(mrb_state *mrb, const char *mesg); MRB_API mrb_value mrb_exc_new_str(mrb_state *mrb, struct RClass* c, mrb_value str); #define mrb_exc_new_str_lit(mrb, c, lit) mrb_exc_new_str(mrb, c, mrb_str_new_lit(mrb, lit)) -MRB_API mrb_value mrb_make_exception(mrb_state *mrb, int argc, const mrb_value *argv); +MRB_API mrb_value mrb_make_exception(mrb_state *mrb, mrb_int argc, const mrb_value *argv); MRB_API mrb_value mrb_exc_backtrace(mrb_state *mrb, mrb_value exc); MRB_API mrb_value mrb_get_backtrace(mrb_state *mrb); MRB_API mrb_noreturn void mrb_no_method_error(mrb_state *mrb, mrb_sym id, mrb_value args, const char *fmt, ...); diff --git a/src/error.c b/src/error.c index 8e679cbb1..fd4182eb2 100644 --- a/src/error.c +++ b/src/error.c @@ -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; -- cgit v1.2.3 From f0c1074b079150d38818312aac586d23f6213ae9 Mon Sep 17 00:00:00 2001 From: Tomasz Dąbrowski Date: Mon, 25 Sep 2017 16:32:55 +0200 Subject: fix: src\numeric.c(1215): warning C4244: 'function': conversion from 'mrb_int' to 'int', possible loss of data --- include/mruby/numeric.h | 2 +- src/numeric.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/mruby/numeric.h b/include/mruby/numeric.h index 40c8c4a20..042311df8 100644 --- a/include/mruby/numeric.h +++ b/include/mruby/numeric.h @@ -25,7 +25,7 @@ MRB_BEGIN_DECL #define FIXABLE_FLOAT(f) TYPED_FIXABLE(f,double) MRB_API mrb_value mrb_flo_to_fixnum(mrb_state *mrb, mrb_value val); -MRB_API mrb_value mrb_fixnum_to_str(mrb_state *mrb, mrb_value x, int base); +MRB_API mrb_value mrb_fixnum_to_str(mrb_state *mrb, mrb_value x, mrb_int base); /* ArgumentError if format string doesn't match /%(\.[0-9]+)?[aAeEfFgG]/ */ MRB_API mrb_value mrb_float_to_str(mrb_state *mrb, mrb_value x, const char *fmt); MRB_API mrb_float mrb_to_flo(mrb_state *mrb, mrb_value x); diff --git a/src/numeric.c b/src/numeric.c index 4ec78174e..8c7d448bd 100644 --- a/src/numeric.c +++ b/src/numeric.c @@ -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; -- cgit v1.2.3 From 5ede90cdf4f98277a4360cef60b4ec4f1d054da9 Mon Sep 17 00:00:00 2001 From: Tomasz Dąbrowski Date: Mon, 25 Sep 2017 16:33:51 +0200 Subject: fix: src\vm.c(438): warning C4244: '=': conversion from 'mrb_int' to 'int', possible loss of data --- include/mruby.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include') diff --git a/include/mruby.h b/include/mruby.h index fa049f293..316707909 100644 --- a/include/mruby.h +++ b/include/mruby.h @@ -858,7 +858,7 @@ mrb_get_mid(mrb_state *mrb) /* get method symbol */ return mrb->c->ci->mid; } -static inline int +static inline mrb_int mrb_get_argc(mrb_state *mrb) /* get argc */ { return mrb->c->ci->argc; -- cgit v1.2.3