Commit 4a27dd0e authored by take_cheeze's avatar take_cheeze

Use `_Static_assert` when C11 is available and use it in pointer size check.

parent e070fce8
...@@ -429,6 +429,12 @@ void mrb_atexit(mrb_state *mrb, mrb_atexit_func func); ...@@ -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) #define mrb_assert_int_fit(t1,n,t2,max) ((void)0)
#endif #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, ...); mrb_value mrb_format(mrb_state *mrb, const char *format, ...);
#if defined(__cplusplus) #if defined(__cplusplus)
......
...@@ -29,7 +29,7 @@ mrb_open_allocf(mrb_allocf f, void *ud) ...@@ -29,7 +29,7 @@ mrb_open_allocf(mrb_allocf f, void *ud)
mrb_state *mrb; mrb_state *mrb;
#ifdef MRB_NAN_BOXING #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 #endif
mrb = (mrb_state *)(f)(NULL, NULL, sizeof(mrb_state), ud); mrb = (mrb_state *)(f)(NULL, NULL, sizeof(mrb_state), ud);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment