summaryrefslogtreecommitdiffhomepage
path: root/include
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2014-03-13 03:09:58 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2014-03-13 03:09:58 +0900
commit5b3c76ee481e44ac7e948cafb9aef30a7531270f (patch)
tree45b3e48a2dd77ab2836cabce0ede353fca98d3bc /include
parentad04b45e5b2a762169beb03dac3b2fe20914476f (diff)
parent1b6a4fb5a2e21b6075bc8ecfd874c6c8fcbeefa2 (diff)
downloadmruby-5b3c76ee481e44ac7e948cafb9aef30a7531270f.tar.gz
mruby-5b3c76ee481e44ac7e948cafb9aef30a7531270f.zip
Merge pull request #1849 from cremno/add-mrb_int_bit-macro
add MRB_INT_BIT
Diffstat (limited to 'include')
-rw-r--r--include/mruby/value.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/include/mruby/value.h b/include/mruby/value.h
index a940aabb7..ccc30357b 100644
--- a/include/mruby/value.h
+++ b/include/mruby/value.h
@@ -26,6 +26,7 @@
# error Cannot use NaN boxing when mrb_int is 64bit
# else
typedef int64_t mrb_int;
+# define MRB_INT_BIT 64
# define MRB_INT_MIN INT64_MIN
# define MRB_INT_MAX INT64_MAX
# define PRIdMRB_INT PRId64
@@ -36,10 +37,12 @@
# endif
#elif defined(MRB_INT16)
typedef int16_t mrb_int;
+# define MRB_INT_BIT 16
# define MRB_INT_MIN INT16_MIN
# define MRB_INT_MAX INT16_MAX
#else
typedef int32_t mrb_int;
+# define MRB_INT_BIT 32
# define MRB_INT_MIN INT32_MIN
# define MRB_INT_MAX INT32_MAX
# define PRIdMRB_INT PRId32
@@ -239,7 +242,7 @@ typedef union mrb_value {
void *p;
struct {
unsigned int i_flag : MRB_FIXNUM_SHIFT;
- mrb_int i : (sizeof(mrb_int) * CHAR_BIT - MRB_FIXNUM_SHIFT);
+ mrb_int i : (MRB_INT_BIT - MRB_FIXNUM_SHIFT);
};
struct {
unsigned int sym_flag : MRB_SPECIAL_SHIFT;