diff options
| author | dearblue <[email protected]> | 2021-10-24 23:11:52 +0900 |
|---|---|---|
| committer | dearblue <[email protected]> | 2021-10-24 23:11:52 +0900 |
| commit | b774832ee1a97c44cabbbaac004a3b784ed02a83 (patch) | |
| tree | 28e1cf6551e42b933d6a2fbeff1dce4970106e34 /src | |
| parent | 7850549a5edf2952056234203d2c72cf264f08eb (diff) | |
| download | mruby-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.c | 2 | ||||
| -rw-r--r-- | src/hash.c | 6 | ||||
| -rw-r--r-- | src/load.c | 2 |
3 files changed, 5 insertions, 5 deletions
@@ -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; } |
