Fixed MRB_INT64 warning

This commit is contained in:
Yuichiro MASUI
2013-01-21 23:21:16 +09:00
parent cc2e4e73de
commit 2b2051ebb1
2 changed files with 15 additions and 7 deletions
+10 -6
View File
@@ -76,7 +76,7 @@
typedef int32_t mrb_int;
# define MRB_INT_MIN INT32_MIN
# define MRB_INT_MAX INT32_MAX
# define mrb_int_to_str(buf, i) sprintf((buf), "%d", (i))
# define mrb_int_to_str(buf, i) sprintf((buf), "%" PRId32, (i))
# define str_to_mrb_int(buf) (mrb_int)strtol((buf), NULL, 10)
# endif
#else
@@ -84,13 +84,13 @@
typedef int64_t mrb_int;
# define MRB_INT_MIN INT64_MIN
# define MRB_INT_MAX INT64_MAX
# define mrb_int_to_str(buf, i) sprintf((buf), "%ld", (i))
# define mrb_int_to_str(buf, i) sprintf((buf), "%" PRId64, (i))
# define str_to_mrb_int(buf) (mrb_int)strtoll((buf), NULL, 10)
# else
typedef int mrb_int;
# define MRB_INT_MIN INT_MIN
# define MRB_INT_MAX INT_MAX
# define mrb_int_to_str(buf, i) sprintf((buf), "%d", (i))
typedef int32_t mrb_int;
# define MRB_INT_MIN INT32_MIN
# define MRB_INT_MAX INT32_MAX
# define mrb_int_to_str(buf, i) sprintf((buf), "%" PRId32, (i))
# define str_to_mrb_int(buf) (mrb_int)strtol((buf), NULL, 10)
# endif
#endif
@@ -131,6 +131,10 @@ typedef short mrb_sym;
# define isnan _isnan
# define isinf(n) (!_finite(n) && !_isnan(n))
# define strtoll _strtoi64
# define PRId32 "I32d"
# define PRId32 "I64d"
#else
# include <inttypes.h>
#endif
#endif /* MRUBYCONF_H */
+5 -1
View File
@@ -145,7 +145,11 @@ make_cdump_irep(mrb_state *mrb, int irep_no, FILE *f)
case MRB_TT_FLOAT:
SOURCE_CODE(" irep->pool[%d] = mrb_float_value(%.16e);", n, mrb_float(irep->pool[n])); break;
case MRB_TT_FIXNUM:
SOURCE_CODE(" irep->pool[%d] = mrb_fixnum_value(%d);", n, mrb_fixnum(irep->pool[n])); break;
{
char num_buf[64];
mrb_int_to_str(num_buf, mrb_fixnum(irep->pool[n]));
SOURCE_CODE(" irep->pool[%d] = mrb_fixnum_value(%s);", n, num_buf); break;
}
case MRB_TT_STRING:
str_len = str_format_len(irep->pool[n]) + 1;
if ( str_len > buf_len ) {