Commit 7e4a7abf authored by Yukihiro "Matz" Matsumoto's avatar Yukihiro "Matz" Matsumoto

Merge pull request #3055 from mattn/fix-msvc-warnings

fix build on VS2012
parents d0727be6 7cc33af2
...@@ -450,7 +450,7 @@ mrb_debug_check_breakpoint_line( mrb_state *mrb, mrb_debug_context *dbg, const c ...@@ -450,7 +450,7 @@ mrb_debug_check_breakpoint_line( mrb_state *mrb, mrb_debug_context *dbg, const c
{ {
mrb_debug_breakpoint *bp; mrb_debug_breakpoint *bp;
mrb_debug_linepoint *line_p; mrb_debug_linepoint *line_p;
int i; uint32_t i;
if((mrb == NULL) || (dbg == NULL) || (file == NULL) || (line <= 0)) { if((mrb == NULL) || (dbg == NULL) || (file == NULL) || (line <= 0)) {
return MRB_DEBUG_INVALID_ARGUMENT; return MRB_DEBUG_INVALID_ARGUMENT;
...@@ -488,7 +488,7 @@ mrb_debug_check_breakpoint_method( mrb_state *mrb, mrb_debug_context *dbg, struc ...@@ -488,7 +488,7 @@ mrb_debug_check_breakpoint_method( mrb_state *mrb, mrb_debug_context *dbg, struc
{ {
mrb_debug_breakpoint *bp; mrb_debug_breakpoint *bp;
int32_t bpno; int32_t bpno;
int i; uint32_t i;
if((mrb == NULL) || (dbg == NULL) || (class_obj == NULL)) { if((mrb == NULL) || (dbg == NULL) || (class_obj == NULL)) {
return MRB_DEBUG_INVALID_ARGUMENT; return MRB_DEBUG_INVALID_ARGUMENT;
......
...@@ -19,7 +19,7 @@ domain_error(mrb_state *mrb, const char *func) ...@@ -19,7 +19,7 @@ domain_error(mrb_state *mrb, const char *func)
} }
/* math functions not provided by Microsoft Visual C++ 2012 or older */ /* math functions not provided by Microsoft Visual C++ 2012 or older */
#if defined _MSC_VER && _MSC_VER < 1700 #if defined _MSC_VER && _MSC_VER <= 1700
#include <float.h> #include <float.h>
......
...@@ -54,7 +54,7 @@ write_irep_header(mrb_state *mrb, mrb_irep *irep, uint8_t *buf) ...@@ -54,7 +54,7 @@ write_irep_header(mrb_state *mrb, mrb_irep *irep, uint8_t *buf)
{ {
uint8_t *cur = buf; uint8_t *cur = buf;
cur += uint32_to_bin(get_irep_record_size_1(mrb, irep), cur); /* record size */ cur += uint32_to_bin((uint32_t)get_irep_record_size_1(mrb, irep), cur); /* record size */
cur += uint16_to_bin((uint16_t)irep->nlocals, cur); /* number of local variable */ cur += uint16_to_bin((uint16_t)irep->nlocals, cur); /* number of local variable */
cur += uint16_to_bin((uint16_t)irep->nregs, cur); /* number of register variable */ cur += uint16_to_bin((uint16_t)irep->nregs, cur); /* number of register variable */
cur += uint16_to_bin((uint16_t)irep->rlen, cur); /* number of child irep */ cur += uint16_to_bin((uint16_t)irep->rlen, cur); /* number of child irep */
......
...@@ -156,7 +156,7 @@ fmt_fp(struct fmt_args *f, long double y, int w, int p, int fl, int t) ...@@ -156,7 +156,7 @@ fmt_fp(struct fmt_args *f, long double y, int w, int p, int fl, int t)
s=buf; s=buf;
do { do {
int x=y; int x=(int)y;
*s++=xdigits[x]|(t&32); *s++=xdigits[x]|(t&32);
y=16*(y-x); y=16*(y-x);
if (s-buf==1 && (y||p>0||(fl&ALT_FORM))) *s++='.'; if (s-buf==1 && (y||p>0||(fl&ALT_FORM))) *s++='.';
...@@ -184,7 +184,7 @@ fmt_fp(struct fmt_args *f, long double y, int w, int p, int fl, int t) ...@@ -184,7 +184,7 @@ fmt_fp(struct fmt_args *f, long double y, int w, int p, int fl, int t)
else a=r=z=big+sizeof(big)/sizeof(*big) - LDBL_MANT_DIG - 1; else a=r=z=big+sizeof(big)/sizeof(*big) - LDBL_MANT_DIG - 1;
do { do {
*z = y; *z = (uint32_t)y;
y = 1000000000*(y-*z++); y = 1000000000*(y-*z++);
} while (y); } while (y);
...@@ -194,7 +194,7 @@ fmt_fp(struct fmt_args *f, long double y, int w, int p, int fl, int t) ...@@ -194,7 +194,7 @@ fmt_fp(struct fmt_args *f, long double y, int w, int p, int fl, int t)
for (d=z-1; d>=a; d--) { for (d=z-1; d>=a; d--) {
uint64_t x = ((uint64_t)*d<<sh)+carry; uint64_t x = ((uint64_t)*d<<sh)+carry;
*d = x % 1000000000; *d = x % 1000000000;
carry = x / 1000000000; carry = (uint32_t)(x / 1000000000);
} }
if (carry) *--a = carry; if (carry) *--a = carry;
while (z>a && !z[-1]) z--; while (z>a && !z[-1]) z--;
......
...@@ -4,6 +4,10 @@ ...@@ -4,6 +4,10 @@
** See Copyright Notice in mruby.h ** See Copyright Notice in mruby.h
*/ */
#ifdef _MSC_VER
# define _CRT_NONSTDC_NO_DEPRECATE
#endif
#include <float.h> #include <float.h>
#include <limits.h> #include <limits.h>
#include <stddef.h> #include <stddef.h>
...@@ -2170,12 +2174,12 @@ mrb_str_len_to_inum(mrb_state *mrb, const char *str, size_t len, int base, int b ...@@ -2170,12 +2174,12 @@ mrb_str_len_to_inum(mrb_state *mrb, const char *str, size_t len, int base, int b
} }
n *= base; n *= base;
n += c; n += c;
if (n > (int64_t)MRB_INT_MAX + (sign ? 0 : 1)) { if (n > (uint64_t)MRB_INT_MAX + (sign ? 0 : 1)) {
mrb_raisef(mrb, E_ARGUMENT_ERROR, "string (%S) too big for integer", mrb_raisef(mrb, E_ARGUMENT_ERROR, "string (%S) too big for integer",
mrb_str_new(mrb, str, pend-str)); mrb_str_new(mrb, str, pend-str));
} }
} }
val = n; val = (mrb_int)n;
if (badcheck) { if (badcheck) {
if (p == str) goto bad; /* no number */ if (p == str) goto bad; /* no number */
while (p<pend && ISSPACE(*p)) p++; while (p<pend && ISSPACE(*p)) p++;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment