diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-05-08 10:17:04 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-05-08 10:17:04 +0000 |
commit | 9a99663fa97d49d30b192a2632f0c9ddfb6509bc (patch) | |
tree | 7cf6247480ec7e452101c1f22293271e1274a48b | |
parent | 15fabcb2db1be5c8aa40a55f2c52fd1289b1a1e4 (diff) | |
download | ruby-9a99663fa97d49d30b192a2632f0c9ddfb6509bc.tar.gz |
* lib/mkmf.rb (check_sizeof): fixed wrong recuring result for
intrinsic types.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23369 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | lib/mkmf.rb | 12 |
2 files changed, 13 insertions, 4 deletions
@@ -1,3 +1,8 @@ +Fri May 8 19:17:02 2009 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * lib/mkmf.rb (check_sizeof): fixed wrong recuring result for + intrinsic types. + Fri May 8 10:14:08 2009 Nobuyoshi Nakada <nobu@ruby-lang.org> * Makefile.in, configure.in, win32/Makefile.sub (RUBY_BASE_NAME): diff --git a/lib/mkmf.rb b/lib/mkmf.rb index d24c87f5cd..45346bfdbc 100644 --- a/lib/mkmf.rb +++ b/lib/mkmf.rb @@ -989,10 +989,14 @@ def check_sizeof(type, headers = nil, &b) x ? super : "failed" end checking_for checking_message("size of #{type}", headers), fmt do - if ((size = UNIVERSAL_INTS.find {|t| - try_static_assert("#{expr} == sizeof(#{t})", prelude, &b) - }) or - size = try_constant(expr, prelude, &b)) + if UNIVERSAL_INTS.include?(type) + type + elsif size = UNIVERSAL_INTS.find {|t| + try_static_assert("#{expr} == sizeof(#{t})", prelude, opts, &b) + } + $defs.push(format("-DSIZEOF_%s=SIZEOF_%s", type.tr_cpp, size.tr_cpp)) + size + elsif size = try_constant(expr, prelude, opts, &b) $defs.push(format("-DSIZEOF_%s=%s", type.tr_cpp, size)) size end |