summaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authordearblue <[email protected]>2021-10-24 23:11:52 +0900
committerdearblue <[email protected]>2021-10-24 23:11:52 +0900
commitb774832ee1a97c44cabbbaac004a3b784ed02a83 (patch)
tree28e1cf6551e42b933d6a2fbeff1dce4970106e34 /src
parent7850549a5edf2952056234203d2c72cf264f08eb (diff)
downloadmruby-b774832ee1a97c44cabbbaac004a3b784ed02a83.tar.gz
mruby-b774832ee1a97c44cabbbaac004a3b784ed02a83.zip
Make `mrb_static_assert()` a variable argument
`mrb_static_assert()` extends the macro function to take one or two arguments. If the argument is other than that, an error will occur. References: - static_assert のメッセージ省略を許可 - cpprefjp C++日本語リファレンス https://cpprefjp.github.io/lang/cpp17/extending_static_assert.html - c - Overloading Macro on Number of Arguments - Stack Overflow https://stackoverflow.com/a/11763277
Diffstat (limited to 'src')
-rw-r--r--src/gc.c2
-rw-r--r--src/hash.c6
-rw-r--r--src/load.c2
3 files changed, 5 insertions, 5 deletions
diff --git a/src/gc.c b/src/gc.c
index fce2c3150..a6ff0c588 100644
--- a/src/gc.c
+++ b/src/gc.c
@@ -200,7 +200,7 @@ gettimeofday_time(void)
#define GC_RED MRB_GC_RED
#define GC_WHITES (GC_WHITE_A | GC_WHITE_B)
#define GC_COLOR_MASK 7
-mrb_static_assert1(MRB_GC_RED <= GC_COLOR_MASK);
+mrb_static_assert(MRB_GC_RED <= GC_COLOR_MASK);
#define paint_gray(o) ((o)->color = GC_GRAY)
#define paint_black(o) ((o)->color = GC_BLACK)
diff --git a/src/hash.c b/src/hash.c
index a12e45bd7..c0d3d712f 100644
--- a/src/hash.c
+++ b/src/hash.c
@@ -69,8 +69,8 @@
#define AR_MAX_SIZE 16
#define H_MAX_SIZE EA_MAX_CAPA
-mrb_static_assert1(offsetof(struct RHash, iv) == offsetof(struct RObject, iv));
-mrb_static_assert1(AR_MAX_SIZE < (1 << MRB_HASH_AR_EA_CAPA_BIT));
+mrb_static_assert(offsetof(struct RHash, iv) == offsetof(struct RObject, iv));
+mrb_static_assert(AR_MAX_SIZE < (1 << MRB_HASH_AR_EA_CAPA_BIT));
typedef struct hash_entry {
mrb_value key;
@@ -243,7 +243,7 @@ DEFINE_SWITCHER(ht, HT)
* assumptions.
*/
# define HT_ASSERT_SAFE_READ(attr_name) \
- mrb_static_assert1( \
+ mrb_static_assert( \
offsetof(hash_table, attr_name) + sizeof(((hash_table*)0)->attr_name) <= \
sizeof(hash_entry))
HT_ASSERT_SAFE_READ(ea);
diff --git a/src/load.c b/src/load.c
index 256dd58fd..2d1ec507e 100644
--- a/src/load.c
+++ b/src/load.c
@@ -98,7 +98,7 @@ read_irep_record_1(mrb_state *mrb, const uint8_t *bin, size_t *len, uint8_t flag
if (irep->ilen > 0) {
size_t data_len = sizeof(mrb_code) * irep->ilen +
sizeof(struct mrb_irep_catch_handler) * irep->clen;
- mrb_static_assert1(sizeof(struct mrb_irep_catch_handler) == 13);
+ mrb_static_assert(sizeof(struct mrb_irep_catch_handler) == 13);
if (SIZE_ERROR_MUL(irep->ilen, sizeof(mrb_code))) {
return FALSE;
}