From 2b2051ebb1d4b40066a6fd79e2d3e18963bee174 Mon Sep 17 00:00:00 2001 From: Yuichiro MASUI Date: Mon, 21 Jan 2013 23:21:16 +0900 Subject: Fixed MRB_INT64 warning --- src/cdump.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/cdump.c b/src/cdump.c index 247511f5a..31fe89f81 100644 --- a/src/cdump.c +++ b/src/cdump.c @@ -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 ) { -- cgit v1.2.3 From 5a681874dd8fbd5446615710fcd4320a2f1438c9 Mon Sep 17 00:00:00 2001 From: Yuichiro MASUI Date: Sat, 26 Jan 2013 01:05:20 +0900 Subject: defined printf macro for mrb_int --- include/mrbconf.h | 9 ++++++--- src/cdump.c | 6 +----- 2 files changed, 7 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/include/mrbconf.h b/include/mrbconf.h index 895a684a6..17f6a0fc3 100644 --- a/include/mrbconf.h +++ b/include/mrbconf.h @@ -76,7 +76,8 @@ 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 MRB_INT_FORMAT PRId32 +# define mrb_int_to_str(buf, i) sprintf((buf), "%" MRB_INT_FORMAT, (i)) # define str_to_mrb_int(buf) (mrb_int)strtol((buf), NULL, 10) # endif #else @@ -84,13 +85,15 @@ 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), "%" PRId64, (i)) +# define MRB_INT_FORMAT PRId64 +# define mrb_int_to_str(buf, i) sprintf((buf), "%" MRB_INT_FORMAT, (i)) # define str_to_mrb_int(buf) (mrb_int)strtoll((buf), NULL, 10) # else 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 MRB_INT_FORMAT PRId32 +# define mrb_int_to_str(buf, i) sprintf((buf), "%" MRB_INT_FORMAT, (i)) # define str_to_mrb_int(buf) (mrb_int)strtol((buf), NULL, 10) # endif #endif diff --git a/src/cdump.c b/src/cdump.c index 31fe89f81..7beb3544f 100644 --- a/src/cdump.c +++ b/src/cdump.c @@ -145,11 +145,7 @@ 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: - { - 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; - } + SOURCE_CODE(" irep->pool[%d] = mrb_fixnum_value(%" MRB_INT_FORMAT ");", n, mrb_fixnum(irep->pool[n])); break; case MRB_TT_STRING: str_len = str_format_len(irep->pool[n]) + 1; if ( str_len > buf_len ) { -- cgit v1.2.3