diff options
author | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2021-10-26 23:39:43 +0900 |
---|---|---|
committer | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2021-10-27 02:05:06 +0900 |
commit | e3a783b14191fef175c9a59996afdc744c8edc4c (patch) | |
tree | 33e1fa96535433dc67e7b8fac63c738e32e88b0c /gc.c | |
parent | afdca0e780760e008e26f4c9fc7262a0a4fe56bb (diff) |
Align `RFloat` at VALUE boundary
Notes
Notes:
Merged: https://github.com/ruby/ruby/pull/5027
Diffstat (limited to 'gc.c')
-rw-r--r-- | gc.c | 11 |
1 files changed, 5 insertions, 6 deletions
@@ -565,10 +565,6 @@ struct RMoved { #define RMOVED(obj) ((struct RMoved *)(obj)) -#if (SIZEOF_DOUBLE > SIZEOF_VALUE) && (defined(_MSC_VER) || defined(__CYGWIN__)) -#pragma pack(push, 4) /* == SIZEOF_VALUE: magic for reducing sizeof(RVALUE): 24 -> 20 */ -#endif - typedef struct RVALUE { union { struct { @@ -618,9 +614,12 @@ typedef struct RVALUE { #endif } RVALUE; -#if (SIZEOF_DOUBLE > SIZEOF_VALUE) && (defined(_MSC_VER) || defined(__CYGWIN__)) -#pragma pack(pop) +#if GC_DEBUG +STATIC_ASSERT(sizeof_rvalue, offsetof(RVALUE, file) == SIZEOF_VALUE * 5); +#else +STATIC_ASSERT(sizeof_rvalue, sizeof(RVALUE) == SIZEOF_VALUE * 5); #endif +STATIC_ASSERT(alignof_rvalue, RUBY_ALIGNOF(RVALUE) == SIZEOF_VALUE); typedef uintptr_t bits_t; enum { |