diff options
| -rw-r--r-- | include/mruby.h | 6 | ||||
| -rw-r--r-- | src/state.c | 2 |
2 files changed, 7 insertions, 1 deletions
diff --git a/include/mruby.h b/include/mruby.h index 390d593bc..c73f7c630 100644 --- a/include/mruby.h +++ b/include/mruby.h @@ -429,6 +429,12 @@ void mrb_atexit(mrb_state *mrb, mrb_atexit_func func); #define mrb_assert_int_fit(t1,n,t2,max) ((void)0) #endif +#if __STDC_VERSION__ >= 201112L +#define mrb_static_assert(exp, str) _Static_assert(exp, str) +#else +#define mrb_static_assert(exp, str) typedef char mrb_static_assert ## __LINE__[exp] +#endif + mrb_value mrb_format(mrb_state *mrb, const char *format, ...); #if defined(__cplusplus) 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); |
