diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2021-01-25 15:41:29 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2021-01-25 15:45:32 +0900 |
| commit | 0903e2a72e8f3aa848fdbb60f1ceece7af3d1cb4 (patch) | |
| tree | 7ed6a279752f227b2a6afc24edf9f8fb3c6bbc31 | |
| parent | efef4541aa97460b80618af369879881b376cc30 (diff) | |
| download | mruby-0903e2a72e8f3aa848fdbb60f1ceece7af3d1cb4.tar.gz mruby-0903e2a72e8f3aa848fdbb60f1ceece7af3d1cb4.zip | |
Silence 'loss of data' warnings.
| -rw-r--r-- | mrbgems/mruby-rational/src/rational.c | 4 | ||||
| -rw-r--r-- | src/backtrace.c | 6 | ||||
| -rw-r--r-- | src/codedump.c | 6 | ||||
| -rw-r--r-- | src/dump.c | 2 | ||||
| -rw-r--r-- | src/vm.c | 8 |
5 files changed, 14 insertions, 12 deletions
diff --git a/mrbgems/mruby-rational/src/rational.c b/mrbgems/mruby-rational/src/rational.c index 0d317cc0f..c9f3e0d03 100644 --- a/mrbgems/mruby-rational/src/rational.c +++ b/mrbgems/mruby-rational/src/rational.c @@ -166,8 +166,8 @@ rational_new_i(mrb_state *mrb, mrb_int n, mrb_int d) #include <math.h> #if defined(MRB_INT32) || defined(MRB_USE_FLOAT32) -#define frexp_rat frexpf -#define ldexp_rat ldexpf +#define frexp_rat(x,exp) frexpf((float)x, exp) +#define ldexp_rat(x,exp) ldexpf((float)x, exp) #define RAT_MANT_DIG FLT_MANT_DIG #define RAT_INT_LIMIT 30 #define RAT_HUGE_VAL HUGE_VALF diff --git a/src/backtrace.c b/src/backtrace.c index 508fe99e9..65404d23a 100644 --- a/src/backtrace.c +++ b/src/backtrace.c @@ -41,6 +41,7 @@ each_backtrace(mrb_state *mrb, ptrdiff_t ciidx, each_backtrace_func func, void * mrb_callinfo *ci; const mrb_irep *irep; const mrb_code *pc; + uint32_t idx; ci = &mrb->c->cibase[i]; @@ -57,10 +58,11 @@ each_backtrace(mrb_state *mrb, ptrdiff_t ciidx, each_backtrace_func func, void * continue; } - loc.lineno = mrb_debug_get_line(mrb, irep, pc - irep->iseq); + idx = (uint32_t)(pc - irep->iseq); + loc.lineno = mrb_debug_get_line(mrb, irep, idx); if (loc.lineno == -1) continue; - loc.filename = mrb_debug_get_filename(mrb, irep, pc - irep->iseq); + loc.filename = mrb_debug_get_filename(mrb, irep, idx); if (!loc.filename) { loc.filename = "(unknown)"; } diff --git a/src/codedump.c b/src/codedump.c index e6c6e6c3d..3a7b34354 100644 --- a/src/codedump.c +++ b/src/codedump.c @@ -42,7 +42,7 @@ print_lv_ab(mrb_state *mrb, const mrb_irep *irep, uint16_t a, uint16_t b) } static void -print_header(mrb_state *mrb, const mrb_irep *irep, ptrdiff_t i) +print_header(mrb_state *mrb, const mrb_irep *irep, uint32_t i) { int32_t line; @@ -120,12 +120,12 @@ codedump(mrb_state *mrb, const mrb_irep *irep) ai = mrb_gc_arena_save(mrb); i = pc - irep->iseq; - next_file = mrb_debug_get_filename(mrb, irep, i); + next_file = mrb_debug_get_filename(mrb, irep, (uint32_t)i); if (next_file && file != next_file) { printf("file: %s\n", next_file); file = next_file; } - print_header(mrb, irep, i); + print_header(mrb, irep, (uint32_t)i); ins = READ_B(); switch (ins) { CASE(OP_NOP, Z); diff --git a/src/dump.c b/src/dump.c index 10b6d9dec..76508a27e 100644 --- a/src/dump.c +++ b/src/dump.c @@ -1043,7 +1043,7 @@ sym_operator_name(const char *sym_name, mrb_int len) for (start = 0; table_size != 0; table_size/=2) { idx = start+table_size/2; op_sym = &operator_table[idx]; - cmp = len-op_sym->sym_name_len; + cmp = (int)(len-op_sym->sym_name_len); if (cmp == 0) { cmp = memcmp(sym_name, op_sym->sym_name, len); if (cmp == 0) return op_sym->name; @@ -279,8 +279,8 @@ cipush(mrb_state *mrb, mrb_int push_stacks, mrb_int acc, ci->mid = mid; mrb_vm_ci_proc_set(ci, proc); ci->stack = ci[-1].stack + push_stacks; - ci->argc = argc; - ci->acc = acc; + ci->argc = (int16_t)argc; + ci->acc = (int16_t)acc; ci->u.target_class = target_class; return ci; @@ -1282,7 +1282,7 @@ RETRY_TRY_BLOCK: } CASE(OP_JMPUW, S) { - a = (pc - irep->iseq) + (int16_t)a; + a = (uint32_t)((pc - irep->iseq) + (int16_t)a); CHECKPOINT_RESTORE(RBREAK_TAG_JUMP) { struct RBreak *brk = (struct RBreak*)mrb->exc; mrb_value target = mrb_break_value_get(brk); @@ -1855,7 +1855,7 @@ RETRY_TRY_BLOCK: } /* format arguments for generated code */ - mrb->c->ci->argc = len + kd; + mrb->c->ci->argc = (int16_t)(len + kd); /* clear local (but non-argument) variables */ if (irep->nlocals-blk_pos-1 > 0) { |
