summaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2014-06-09 23:27:44 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2014-06-09 23:27:44 +0900
commita036cbea16f5c250af830794816040d19e531377 (patch)
treecc52589e320d762e4fc8cdbc302736e6140a1538 /src
parentf1b1a8acd1c890f06cdd39bbbc3a85b3313a911d (diff)
parent4de468e75414eb1adb3bafba19b72caba3a17044 (diff)
downloadmruby-a036cbea16f5c250af830794816040d19e531377.tar.gz
mruby-a036cbea16f5c250af830794816040d19e531377.zip
Merge pull request #2373 from take-cheeze/static_assert
Add macro `mrb_static_assert`.
Diffstat (limited to 'src')
-rw-r--r--src/state.c2
-rw-r--r--src/string.c2
2 files changed, 3 insertions, 1 deletions
diff --git a/src/state.c b/src/state.c
index ac9f88088..dc5a1481f 100644
--- a/src/state.c
+++ b/src/state.c
@@ -29,7 +29,7 @@ mrb_open_allocf(mrb_allocf f, void *ud)
mrb_state *mrb;
#ifdef MRB_NAN_BOXING
- mrb_assert(sizeof(void*) == 4);
+ mrb_static_assert(sizeof(void*) == 4, "when using NaN boxing sizeof pointer must be 4 byte");
#endif
mrb = (mrb_state *)(f)(NULL, NULL, sizeof(mrb_state), ud);
diff --git a/src/string.c b/src/string.c
index 0fe79e61d..734bf739a 100644
--- a/src/string.c
+++ b/src/string.c
@@ -2503,6 +2503,8 @@ mrb_init_string(mrb_state *mrb)
{
struct RClass *s;
+ mrb_static_assert(RSTRING_EMBED_LEN_MAX < (1 << 5), "pointer size too big for embedded string");
+
s = mrb->string_class = mrb_define_class(mrb, "String", mrb->object_class); /* 15.2.10 */
MRB_SET_INSTANCE_TT(s, MRB_TT_STRING);