aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2010-12-03 10:48:12 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2010-12-03 10:48:12 +0000
commit7031b99bca22bd8fa1d078b182226f59007250f0 (patch)
tree848733a804d2e69247355657ae70a5e45f2113d2
parente18e1314a969ae8ad81a0f83f0100d0a6eeb888e (diff)
downloadruby-7031b99bca22bd8fa1d078b182226f59007250f0.tar.gz
* lib/mkmf.rb (check_sizeof): should return integer always.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@30068 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog4
-rw-r--r--lib/mkmf.rb9
-rw-r--r--test/mkmf/test_sizeof.rb8
3 files changed, 12 insertions, 9 deletions
diff --git a/ChangeLog b/ChangeLog
index 20aff2b860..cac81c48cb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+Fri Dec 3 19:48:11 2010 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * lib/mkmf.rb (check_sizeof): should return integer always.
+
Fri Dec 3 12:54:48 2010 NAKAMURA Usaku <usa@ruby-lang.org>
* win32/Makefile.sub (RCFLAGS): VC10 and after only. fixed the problem
diff --git a/lib/mkmf.rb b/lib/mkmf.rb
index 7539cf5dba..3e078779c7 100644
--- a/lib/mkmf.rb
+++ b/lib/mkmf.rb
@@ -1105,14 +1105,7 @@ def check_sizeof(type, headers = nil, opts = "", &b)
expr = "sizeof((*rbcv_ptr_)#{"." << member if member})"
fmt = STRING_OR_FAILED_FORMAT
checking_for checking_message("size of #{type}", headers), fmt do
- 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)
+ if size = try_constant(expr, prelude, opts, &b)
$defs.push(format("-DSIZEOF_%s=%s", type.tr_cpp, size))
size
end
diff --git a/test/mkmf/test_sizeof.rb b/test/mkmf/test_sizeof.rb
index d35811f3f6..a44e609c06 100644
--- a/test/mkmf/test_sizeof.rb
+++ b/test/mkmf/test_sizeof.rb
@@ -2,7 +2,13 @@ require_relative 'base'
class TestMkmf
class TestSizeof < TestMkmf
- def test_sizeof
+ def test_sizeof_builtin
+ %w[char short int long float double void*].each do |type|
+ assert_kind_of(Integer, mkmf {check_sizeof(type)})
+ end
+ end
+
+ def test_sizeof_struct
open("confdefs.h", "w") {|f|
f.puts "typedef struct {char x;} test1_t;"
}