diff options
author | mame <mame@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-01-13 11:45:25 +0000 |
---|---|---|
committer | mame <mame@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-01-13 11:45:25 +0000 |
commit | 7da7716159f296e0175aad3a23452ef9710e80e5 (patch) | |
tree | d8b10dc02bc0d11b4beb438e0626821bda168086 | |
parent | afcd060a926ab8ab8405bf51ca4c23d8abce4c21 (diff) | |
download | ruby-7da7716159f296e0175aad3a23452ef9710e80e5.tar.gz |
internal.h (FLEX_ARY_LEN): Add a macro to define a flexible array
Also, use it in iseq.c.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61804 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | internal.h | 9 | ||||
-rw-r--r-- | iseq.c | 10 |
2 files changed, 10 insertions, 9 deletions
diff --git a/internal.h b/internal.h index b83999464c..c9b16ca49a 100644 --- a/internal.h +++ b/internal.h @@ -2050,6 +2050,15 @@ rb_obj_builtin_type(VALUE obj) } #endif +/* A macro for defining a flexible array, like: VALUE ary[FLEX_ARY_LEN]; */ +#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) +# define FLEX_ARY_LEN /* VALUE ary[]; */ +#elif defined(__GNUC__) && !defined(__STRICT_ANSI__) +# define FLEX_ARY_LEN 0 /* VALUE ary[0]; */ +#else +# define FLEX_ARY_LEN 1 /* VALUE ary[1]; */ +#endif + #if defined(__cplusplus) #if 0 { /* satisfy cc-mode */ @@ -2836,15 +2836,7 @@ struct succ_index_table { unsigned int rank; uint64_t small_block_ranks; /* 9 bits * 7 = 63 bits */ uint64_t bits[512/64]; - } succ_part[ -#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) - /* flexible array member */ -#elif defined(__GNUC__) && !defined(__STRICT_ANSI__) - 0 -#else - 1 -#endif - ]; + } succ_part[FLEX_ARY_LEN]; } succ_index_table; #define imm_block_rank_set(v, i, r) (v) |= (uint64_t)(r) << (7 * (i)) |