From cabc3b65162ea3c4dc2a5c2437ed2b2a1e5b7b15 Mon Sep 17 00:00:00 2001 From: shyouhei Date: Mon, 15 Jan 2018 02:59:18 +0000 Subject: [PATCH] __declspec(align(#)) does not take sizeof() Use compile-time constant expression instead. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61833 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- compile.c | 2 +- include/ruby/ruby.h | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/compile.c b/compile.c index 98004b65a0..31cb3d0ae2 100644 --- a/compile.c +++ b/compile.c @@ -8077,7 +8077,7 @@ struct ibf_dump { rb_iseq_t * iseq_alloc(void); struct ibf_load { - const RUBY_ALIGNAS(sizeof(VALUE)) char *buff; + const ruby_aligned_char *buff; const struct ibf_header *header; ID *id_list; /* [id0, ...] */ VALUE iseq_list; /* [iseq0, ...] */ diff --git a/include/ruby/ruby.h b/include/ruby/ruby.h index 19489bb18c..1e1edc26bd 100644 --- a/include/ruby/ruby.h +++ b/include/ruby/ruby.h @@ -853,7 +853,7 @@ enum ruby_fl_type { RUBY_FL_SINGLETON = RUBY_FL_USER0 }; -struct RUBY_ALIGNAS(sizeof(VALUE)) RBasic { +struct RUBY_ALIGNAS(SIZEOF_VALUE) RBasic { VALUE flags; const VALUE klass; }; @@ -950,7 +950,7 @@ enum ruby_rstring_flags { RSTRING_ENUM_END }; -typedef RUBY_ALIGNAS(sizeof(VALUE)) char ruby_aligned_char; +typedef RUBY_ALIGNAS(SIZEOF_VALUE) char ruby_aligned_char; struct RString { struct RBasic basic; @@ -963,7 +963,7 @@ struct RString { VALUE shared; } aux; } heap; - char RUBY_ALIGNAS(sizeof(VALUE)) ary[RSTRING_EMBED_LEN_MAX + 1]; + char RUBY_ALIGNAS(SIZEOF_VALUE) ary[RSTRING_EMBED_LEN_MAX + 1]; } as; }; #define RSTRING_EMBED_LEN(str) \